代码
  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. });