正則參考

Javascript代碼
  1. </pre><pre name="code" class="javascript">// 正則做參考,拷貝使用,注意正則前後加轉義符  
  2. var regexEnum =  
  3. {  
  4.     intege:"^-?[1-9]\d*$",                  //整數  
  5.     intege1:"^[1-9]\d*$",                   //正整數  
  6.     intege2:"^-[1-9]\d*$",                  //負整數  
  7.     num:"^([+-]?)\d*\.?\d+$",           //數字  
  8.     num1:"^[1-9]\d*|0$",                    //正數(正整數 + 0)  
  9.     num2:"^-[1-9]\d*|0$",                   //負數(負整數 + 0)  
  10.     decmal:"^([+-]?)\d*\.\d+$",         //浮點數  
  11.     decmal1:"^[1-9]\d*.\d*|0.\d*[1-9]\d*$",     //正浮點數  
  12.     decmal2:"^-([1-9]\d*.\d*|0.\d*[1-9]\d*)$",  //負浮點數  
  13.     decmal3:"^-?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)$",  //浮點數  
  14.     decmal4:"^[1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$",   //非負浮點數(正浮點數 + 0)  
  15.     decmal5:"^(-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0$",  //非正浮點數(負浮點數 + 0)  
  16.    
  17.     email:"^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$", //郵件  
  18.     color:"^[a-fA-F0-9]{6}$",               //顏色  
  19.     url:"^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$",  //url  
  20.     chinese:"^[\u4E00-\u9FA5\uF900-\uFA2D]+$",                  //僅中文  
  21.     ascii:"^[\x00-\xFF]+$",             //僅ACSII字符  
  22.     zipcode:"^\d{6}$",                      //郵編  
  23.     mobile:"^(13|15|18|14)[0-9]{9}$",               //手機  
  24.     ip4:"^(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)$", //ip地址  
  25.     notempty:"^\S+$",                       //非空  
  26.     picture:"(.*)\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",    //圖片  
  27.     rar:"(.*)\.(rar|zip|7zip|tgz)$",                                //壓縮文件  
  28.     date:"^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$",                   //日期  
  29.     qq:"^[1-9]*[1-9][0-9]*$",               //QQ號碼  
  30.     tel:"^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$",    //電話號碼的函數(包括驗證國內區號,國際區號,分機號)  
  31.     username:"^\w+$",                       //用來用戶註冊。匹配由數字、26個英文字母或者下劃線組成的字符串  
  32.     letter:"^[A-Za-z]+$",                   //字母  
  33.     letter_u:"^[A-Z]+$",                    //大寫字母  
  34.     letter_l:"^[a-z]+$",                    //小寫字母  
  35.     idcard:"^[1-9]([0-9]{14}|[0-9]{17})$",  //身份證  
  36.     english:"^[A-Za-z]+$"  
  37. }  
  38.    
  39. var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"雲南",54:"西藏",61:"陝西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外"}  
  40.    
  41. function isCardID(sId){  
  42.     var iSum=0 ;  
  43.     var info="" ;  
  44.     if(!/^\d{17}(\d|x)$/i.test(sId)) return "你輸入的身份證長度或格式錯誤";  
  45.     sId=sId.replace(/x$/i,"a");  
  46.     if(aCity[parseInt(sId.substr(0,2))]==null) return "你的身份證地區非法";  
  47.     sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));  
  48.     var d=new Date(sBirthday.replace(/-/g,"/")) ;  
  49.     if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "身份證上的出生日期非法";  
  50.     for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;  
  51.     if(iSum%11!=1) return "你輸入的身份證號非法";  
  52.     return true;//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")  
  53. }  
  54.    
  55. //自定義驗證  
  56. $.extend($.fn.validatebox.defaults.rules, {  
  57.     // 混合驗證  五個參數,第一個是正則表達式,第二個是錯誤提示信息,第三個是調用的url,第四個是傳遞給服務器的參數名稱,第五個是錯誤提示信息  
  58.         Composite_validation: {  
  59.        validator: function(value, param) {   
  60.            var m_reg = new RegExp(param[0]); //傳遞過來的正則字符串中的"\"必須是"\\"   
  61.            if (!m_reg.test(value)) {   
  62.                $.fn.validatebox.defaults.rules.Composite_validation.message = param[1];   
  63.                return false;   
  64.            }   
  65.            else {   
  66.                var postdata = {};   
  67.                postdata[param[3]] = value;   
  68.                var result = $.ajax({   
  69.                    url: param[2],   
  70.                    data: postdata,   
  71.                    async: false,   
  72.                    type: "post"   
  73.                }).responseText;  
  74.                if (result == "false") {  
  75.                    $.fn.validatebox.defaults.rules.Composite_validation.message = param[4];   
  76.                    return false;   
  77.                }   
  78.                else {   
  79.                    return true;   
  80.                }   
  81.            }   
  82.        },   
  83.        message: ''   
  84.    },  
  85.    equalTo: {  
  86.        validator: function(value, param) {  
  87.            // 做某些檢查  
  88.             return value == $('#'+param[0]).val();  
  89.        },   
  90.        message: '兩次輸入的密碼不一致'  
  91.     },  
  92.     mobile: {  
  93.         validator: function (value, param) {  
  94.             return /^(13|15|18|14)[0-9]{9}$/.test(value);  
  95.         },  
  96.         message: '手機號碼不正確'  
  97.     },  
  98.     tel: {  
  99.         validator: function (value, param) {  
  100.             $.fn.validatebox.defaults.rules.tel.message = param[0];   
  101.             return /^\d{3,4}-\d{7,9}$/.test(value);  
  102.         },  
  103.         message: ''  
  104.     },  
  105.     number: {  
  106.         validator: function (value, param) {  
  107.             return /^\d+$/.test(value);  
  108.         },  
  109.         message: '請輸入數字'  
  110.     },  
  111.     idcard: {  
  112.         validator: function (value, param) {  
  113.             var result = isCardID(value);  
  114.             if(result == true) {  
  115.                 return true;  
  116.             } else {  
  117.                 $.fn.validatebox.defaults.rules.idcard.message = result;   
  118.                 return false;   
  119.             }  
  120.         },  
  121.         message:''  
  122.     },  
  123.     chinese: {  
  124.        validator: function(value, param) {  
  125.             return /^[\u4E00-\u9FA5\uF900-\uFA2D]+$/.test(value);  
  126.        },   
  127.        message: '只能輸入中文'  
  128.     },  
  129.     english : {  
  130.         validator : function(value, param) {  
  131.             return /^\w+$/.test(value);   
  132.         },  
  133.         message : '只能輸入英文'  
  134.     },  
  135.     unChinese : {  
  136.         validator : function(value, param) {  
  137.         //return /^[\w-.\/?%&=]*$/.test(value);  
  138.             if(/^[\u4E00-\u9FA5\uF900-\uFA2D]+$/.test(value)) {  
  139.                 return false;  
  140.             }  
  141.             return true;  
  142.         },  
  143.         message : '能輸入除中文以外的字符'  
  144.     }  
  145. });  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章