本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答