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开发中常用的表单验证的正则表达式,希望大家喜欢。