首页 > 编程 > JavaScript > 正文

JS常用正则表达式总结【经典】

2019-11-19 16:35:46
字体:
来源:转载
供稿:网友

本文实例讲述了JS常用正则表达式。分享给大家供大家参考,具体如下:

在项目中个人写的一个常用验证的正则表达式:(仅供参考)

//定义两个全局变量var reg;var errorInfo;//输入的数字类型必须是int型,正负整数都可以function validate_integer(text,value){reg=/^[-/+]?/d+$/;errorInfo=text+" "+value+" 只能是整数,请核实重新输入!";verifyByReg(value,reg,errorInfo);}//输入的数字类型必须是double型,保留的小数位数只能是2位,可以为正负function validate_double(text,value){reg=/^[-/+]?([1-9](/d+)?|0)(/./d{2})$/;errorInfo=text+" "+value+" 只能保留2为小数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//输入的必须是全是数字类型型,不能出现其他字符function validate_number(text,value){reg=/^/d+$/;errorInfo=text+" "+value+" 只能是数字,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证输入n位的数值类型function validate_number_n(text,value,n){reg=eval("/^//d{"+n+"}$/");errorInfo=text+" "+value+" 只能是"+n+"位数字,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证有两位小数的正实数function validate_decimal_two(text,value){reg=/^([1-9](/d+)?|0)(.[0-9]{2})?$/;errorInfo=text+" "+value+" 只能是保留2位小数的正数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证非零的正整数function validate_number_positive(text,value){reg=/^/+?[1-9][0-9]*$/;errorInfo=text+" "+value+" 只能是非0的正整数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证非零的负整数function validate_number_negative(text,value){reg=/^[-][1-9][0-9]*$/;errorInfo=text+" "+value+" 只能是非0的负整数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证非负整数,可以为0function validate_positive_haszero(text,value){reg=/^[1-9](/d+)?|0$/;errorInfo=text+" "+value+" 只能是是0或正整数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证非正整数,可以为0function validate_negative_haszero(text,value){reg=/^/-[1-9](/d+)?|0$/;errorInfo=text+" "+value+" 只能是是0或负整数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证非负浮点数(正浮点数 + 0)function validate_float_notnegative(text,value){reg=/^([1-9](/d+)?|0)(/./d+)|0$/;errorInfo=text+" "+value+" 只能是是0或正浮点数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证正浮点数function validate_float_positive(text,value){reg=/^([1-9](/d+)?|0)(/./d+)$/;errorInfo=text+" "+value+" 只能是正浮点数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//非正浮点数(负浮点数 + 0)function validate_float_notpositive(text,value){reg=/^/-([1-9](/d+)?|0)(/./d+)|0$/;errorInfo=text+" "+value+" 只能是是0或者负浮点数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证负浮点数function validate_float_negative(text,value){reg=/^/-([1-9](/d+)?|0)(/./d+)$/;errorInfo=text+" "+value+" 只能是负浮点数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证正浮点数多少位小数function validate_float_posbit(text,value,n){reg=eval("/^(//d+)(//.//d{"+n+"})$/");errorInfo=text+" "+value+" 只能是"+n+"位正浮点数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证负浮点数多少位小数function validate_float_negbit(text,value,n){reg=eval("/^(-?//d+)(//.//d{"+n+"})$/");errorInfo=text+" "+value+" 只能是"+n+"位负浮点数,请核实重新输入";verifyByReg(value,reg,errorInfo);}//校验文本是否为空function checknull(text,value){if(value=="" || typeof(value)=='undefined'){errorInfo=text+" "+value+" 不能为空,请重新输入!";returnInfo(errorInfo);}}//验证由26个英文字母组成的字符串function validate_string_letter(text,value){reg=/^[A-Za-z]+$/;errorInfo=text+" "+value+" 只能是26位不区分大小写的英文字母组成,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证由26个英文字母的大写组成的字符串function validate_string_bigletter(text,value){reg=/^[A-Z]+$/;errorInfo=text+" "+value+" 只能是26位大写的英文字母组成,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证由26个英文字母的小写组成的字符串function validate_string_smallletter(text,value){reg=/^[a-z]+$/;errorInfo=text+" "+value+" 只能是26位小写的英文字母组成,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证由数字和26个英文字母组成的字符串function validate_string_number(text,value){reg=/^[A-Za-z0-9]+$/;errorInfo=text+" "+value+" 只能是数字和26个英文字母组成,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证由数字、26个英文字母或者下划线组成的字符串function validate_string_numberandunderline(text,value){reg=/^/w+$/;errorInfo=text+" "+value+" 只能是数字、26个英文字母或者下划线组成,请核实重新输入";verifyByReg(value,reg,errorInfo);}//验证邮箱function validate_email(value){reg=/^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$/;errorInfo='邮箱 '+value+" 无效,请重新输入";verifyByReg(value,reg,errorInfo);}//验证时如果选择默认调用此方法 金额类型,可以是正整数或保留4位有效数字的正整数/**有问题function validate_money_default(text,value){var reg=/^/d+(/./d{4})?$/;var errorInfo=text+" "+value+" 只能是正整数或保留4位有效数字,请核实重新输入";verifyByReg(value,reg,errorInfo);}**///验证输入的只能是中文function validate_chinese(text,value){reg=/^[/u4e00-/u9fa5]+$/;errorInfo=text+" "+value+" 只能是中文字符,请重新输入";verifyByReg(value,reg,errorInfo);}//验证输入的只能是n位的中文function validate_bitchinese(text,value,bit){reg=eval("/^[//u4e00-//u9fa5]{"+bit+"}$/");alert(reg);errorInfo=text+" "+value+" 只能是"+bit+"位中文字符,请重新输入";verifyByReg(value,reg,errorInfo);}//跟最大的值比较,此方法是看数字是否超出系统的上限function thanMax(text,number,max){if(number>max){errorInfo=text+" "+number+" 不能大于"+max+",请重新输入";returnInfo(errorInfo);}}//跟最小的值比较,此方法是看数字是否低于系统的下限function thinMin(text,number,min){if(number<min){errorInfo=text +" "+number+" 不能小于"+min+",请重新输入";returnInfo(errorInfo);}}//输入文本的字符串是否在系统的指定长度内function isLimit(text,value,length){var arr=value.split("");if(arr.length>length){errorInfo=text +" "+value+" 字符过长,请输入最多"+length+"位字符";returnInfo(errorInfo);}}//邮政编码的验证function validate_zipcode(value){reg=/[1-9]/d{5}(?!/d)/;errorInfo='邮政编码 '+value+" 有误,请核实重新输入";verifyByReg(value,reg,errorInfo);}//对数值类型的数据进行简单的验证和转换,因为在设置的时候没有传入这个参数的话就会出现js代码错误,所以应该对数值型的数据进行转换//非空字符的判定function getZeroByNull(text,value){errorInfo=text+" "+value+" 不能为空,请核实重新输入";if(value==null||value==''||value=='undefined'){returnInfo(errorInfo);}}//身份证验证,分为了两种,15位和18位function validate_IdCard(value){var size=value.split("");if(size.length==15){reg=/^[1-9]/d{7}((0/d)|(1[0-2]))(([0|1|2]/d)|3[0-1])/d{3}$/;//15位身份证验证errorInfo='位身份证号码 '+value+" 有误,请核实重新输入";}else if(size.length==18){reg=/^[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|x)$/;//18位身份证验证errorInfo='位身份证号码 '+value+" 有误,请核实重新输入";}else{errorInfo="请输入合法的身份证号码!";returnInfo(errorInfo);}verifyByReg(value,reg,errorInfo);}//每个验证都需要调用此方法function verifyByReg(value,reg,errorInfo){if(value!=''&®!=''){var regExp = new RegExp(reg);if(!regExp.test(value)){alert(errorInfo);throw errorInfo;}}}//不进过正则表达式验证,只需要返回信息,适合内部调用此方法function returnInfo(message){alert(message);throw message;}//许可证号 生产企业的格式:QS 1234 2346 3456 其中空格可有可无///经营企业许可证的格式为: 湘010249 但是中国的省会简称可能会有三个字的,所以中文可以定义为1-3个function validate_license(value,type){if(type==1){reg=/^[a-zA-Z]{2}[ ]?(/d{4}[ ]?/d{4}[ ]?/d{4})$/;//生产企业许可证号errorInfo="生产许可证号 "+value+" 有误,请核实重新输入!";}else if(type==2){reg=/^[/u4e00-/u9fa5]{1,3}/d{6}$/;errorInfo="经营许可证号 "+value+" 有误,请核实重新输入!";}verifyByReg(value,reg,errorInfo);}//传真 可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等function validate_fax(value){reg=/^([+]{0,1})?/d{1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/;errorInfo="传真 "+value+" 有误,请重新输入!";verifyByReg(value,reg,errorInfo);}//电话号码可以输入:电话或者手机 其中手机号码可以是(+86)、(86)+号码,也可以是号码 电话的号码可以是区号+号码 区号-号码 号码function validate_tel(value){reg=/(^(0/d{2,3}([-|+])?)?/d{7}$)|(^(/d{3,4}([-|+])?)?/d{7,8}$)|(^([+]?(86)?[+]?)1[3-9]/d{9}$)/;errorInfo='电话号码 '+value+" 有误,请核实重新输入!";verifyByReg(value,reg,errorInfo);}//日:大于0小于等于31的正整数function validate_day(value){reg=/(^[0]?[1-9]$)|(^[1-2]/d$)|(^[3][0-1]$)/;errorInfo='日期 '+value+" 有误,请核实重新输入!";verifyByReg(value,reg,errorInfo);}//月:合法月份function validate_month(value){reg=/(^[0]?[1-9]$)|(^[1][0-2]$)/;errorInfo='月份 '+value+" 有误,请核实重新输入!";verifyByReg(value,reg,errorInfo);}//年:合法年份 在这里合法的年份为公元1000年至公元2999年function validate_year(value){reg=/^[1-2]/d{3}$/;errorInfo='年份 '+value+" 有误,请核实重新输入!";verifyByReg(value,reg,errorInfo);}//百分比:合法百分比(0-100之前的数字)function validate_percentage(text,value){reg=/(^[1-9](/d)?(/./d+)?$)|(^0(/./d+)?$)|(^100$)/;errorInfo=text +" "+value+" 有误,请输入0到100的数字!";verifyByReg(value,reg,errorInfo);}//系数:小于等于1的正数 在这里系数的小数点后面也是2位function validate_modulus(text,value){reg=/^[0](/./d{2})$|^[1](/.[0]{2})?$/;errorInfo=text+" "+value+" 有误,请输入小于0到1的数字!";verifyByReg(value,reg,errorInfo);}//验证非负的正数,包含了正整数和正浮点数function validate_posnumhaszero(text,value){checknull(text,value);reg=/^[1-9](/d+)?(/./d+)?$|^0(/./d+)?$/;errorInfo=text+" "+value+" 有误,请输入大于或等于0 的数字!";verifyByReg(value,reg,errorInfo);}//验证非正的负数,包含了负整数和负浮点数function validate_negnumhaszero(text,value){checknull(text,value);reg=/^[-][1-9](/d+)?(/./d+)?$|^[-]0(/./d+)?$/;errorInfo=text+" "+value+" 有误,请输入小于或等于0 的数字!";verifyByReg(value,reg,errorInfo);}//验证正数,包含了正整数和正浮点数function validate_posnum(text,value){checknull(text,value);reg=/^[1-9](/d+)?(/./d+)?$|^0(/./d+)$/;errorInfo=text+" "+value+" 有误,请输入大于0 的数字!";verifyByReg(value,reg,errorInfo);}//验证负数,包含了负整数和负浮点数function validate_negnum(text,value){checknull(text,value);reg=/^[-][1-9](/d+)?(/./d+)?$|^[-]0(/./d+)$/;errorInfo=text+" "+value+" 有误,请输入小于0 的数字!";verifyByReg(value,reg,errorInfo);}//验证数,包括所有的数值,正数、负数、正浮点数、负浮点数function validate_allnum(text,value){checknull(text,value);reg=/^[-|+]?[1-9](/d+)?(/./d+)?$|^[-|+]?0(/./d+)?$/;errorInfo=text+" "+value+" 有误,请输入数字!";verifyByReg(value,reg,errorInfo);}

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.VeVB.COm/regex/javascript

正则表达式在线生成工具:
http://tools.VeVB.COm/regex/create_reg

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript正则表达式技巧大全》、《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表