12个常用的js正则表达式
在这篇文章里,我已经编写了12个超有用的正则表达式,这可是WEB开发人员的最爱哦。
1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字
//第一种在input输入框限制
<inputtype="text"maxlength="8"class="form-control"id="amount"style="margin-right:2px;"value=""onChange="count();"onkeyup="if(this.value==this.value2)return;if(this.value.search(/^\d*(?:\.\d{0,2})?$/)==-1)this.value=(this.value2)?this.value2:'';elsethis.value2=this.value;">元
//第二种对于表单动态增加的方式,只能在js方法中验证。
varamount=$("#amount").val();
if(amount.search(/^\d*(?:\.\d{0,2})?$/)==-1){
alert("金额格式不对,最多有两位小数");
returnfalse;
}
2.验证邮箱格式
varreg=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
varemail=$("#email").val();
if(!reg.test(email)){
alert("请输入符合规范的邮箱账号!");
returnfalse;
}
3.密码采用数字、字母、特殊字符且长度为8-20位
functionvalidatePwd(str){
if(/^.*?[\d]+.*$/.test(str)&&/^.*?[A-Za-z]/.test(str)
&&/^.*?[~/`!@#$%^&*()_+|{}?;:><\-\]\\[\/].*$/.test(str)&&/^.{8,20}$/.test(str)){
returntrue;
}
returnfalse;
}
4.验证电话号码
/**
*验证电话号码
*@paramphoneValue要验证的电话号码
*@returns匹配返回true不匹配返回false
*/
functionvalidatePhone(phoneValue){
phoneValue=valueTrim(phoneValue);
varreg=/^[1][0-9]{10}$/;
returnreg.test(phoneValue);
}
5.判断是否是汉字
/**
*判断是否是汉字
*
*@paramcharValue
*要验证的数据
*@returns匹配返回true不匹配返回false
*/
functionisCharacter(charValue){
varreg=/^[\u4e00-\u9fa5]{0,}$/;
returnreg.test(charValue);
}
6.是否为字母:true:是,false:不是
functionisChar(charValue){
varcharPattern=/^[a-zA-Z]*$/;//是否为字母
result=charPattern.test(charValue);
returnresult;
}
7.判断是否为数字
functionisNum(numValue){
varnumPattern=/^\d*$/;//数字的正则表达式
result=numPattern.test(numValue);
returnresult;
}
8.整数的正则表达式
functionisInt(intValue){
varintPattern=/^0$|^[1-9]\d*$/;//整数的正则表达式
result=intPattern.test(intValue);
returnresult;
}
9.是否为字母和数字
functionisCharNum(flagValue){
varflagPattern=/^[a-zA-Z0-9]*$/;//是否为字母和数字
result=flagPattern.test(flagValue);
returnresult;
}
10.检验18位身份证号码
/**
*检验18位身份证号码(15位号码可以只检测生日是否正确即可,自行解决)
*
*@paramidCardValue
*18位身份证号
*@returns匹配返回true不匹配返回false
*/
functionidCardVildate(cid){
vararrExp=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];//加权因子
vararrValid=[1,0,"X",9,8,7,6,5,4,3,2];//校验码
varreg=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
if(reg.test(cid)){
varsum=0,idx;
for(vari=0;i<cid.length-1;i++){
//对前17位数字与权值乘积求和
sum+=parseInt(cid.substr(i,1),10)*arrExp[i];
}
//计算模(固定算法)
idx=sum%11;
//检验第18为是否与校验码相等
returnarrValid[idx]==cid.substr(17,1).toUpperCase();
}else{
returnfalse;
}
}
11.验证15位数身份证号码中的生日是否是有效生日
functionisValidityBrithBy15IdCard(idCard15){
varyear=idCard15.substring(6,8);
varmonth=idCard15.substring(8,10);
varday=idCard15.substring(10,12);
vartemp_date=newDate(year,parseFloat(month)-1,parseFloat(day));
//对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
if(temp_date.getYear()!=parseFloat(year)
||temp_date.getMonth()!=parseFloat(month)-1
||temp_date.getDate()!=parseFloat(day)){
returnfalse;
}else{
returntrue;
}
}
12.验证18位数身份证号码中的生日是否是有效生日
functionisValidityBrithBy18IdCard(idCard18){
varyear=idCard18.substring(6,10);
varmonth=idCard18.substring(10,12);
varday=idCard18.substring(12,14);
vartemp_date=newDate(year,parseFloat(month)-1,parseFloat(day));
//这里用getFullYear()获取年份,避免千年虫问题
if(temp_date.getFullYear()!=parseFloat(year)
||temp_date.getMonth()!=parseFloat(month)-1
||temp_date.getDate()!=parseFloat(day)){
returnfalse;
}else{
returntrue;
}
}
这就是小编整理的web开发中常用的表单验证的正则表达式,希望大家喜欢。