EasyUI——validatebox扩展

来源:互联网 发布:淘宝买东西寄到加拿大 编辑:程序博客网 时间:2024/04/30 03:54

利用正则表达式扩展更多表单验证


js代码:

<script type="text/javascript">$(function(){//验证中文$.extend($.fn.validatebox.defaults.rules,{chs:{validator:function(value,param){var reg = /^[\u2E80-\u9FFF]+$/;return reg.test(value);},message:"只能输入中文"}});//中文,字母,数字,下划线及中文符号$.extend($.fn.validatebox.defaults.rules,{stringCheck:{validator:function(value,param){var reg = /^[\u0391-\uFFE5\w]+$/;return reg.test(value);},message:"只能输入中文字母数字下划线"}});//手机号码验证$.extend($.fn.validatebox.defaults.rules,{mobile:{validator:function(value,param){var reg = /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;return value.length==11 && reg.test(value);},message:"请正确输入手机号码"}});//验证身份证号码简单正则$.extend($.fn.validatebox.defaults.rules,{idCard:{validator:function(value,param){var reg = /^\d{15}(\d{2}[A-Za-z0-9])?$/i;return reg.test(value);},message:"请正确输入身份证号码"}});//验证身份证号码完整$.extend($.fn.validatebox.defaults.rules,{idCardNo:{validator:function(value,param){return isIdCardNo(value);},message:"请正确输入身份证号码"}});//身份证号码是否有效function isIdCardNo(num){    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);    var error;    var varArray = new Array();    var intValue;    var lngProduct = 0;    var intCheckDigit;    var intStrLen = num.length;//身份证号码长度    var idNumber = num;        if ((intStrLen != 15) && (intStrLen != 18)) {        //error = "输入身份证号码长度不对!";        return false;    }        for(i=0;i<intStrLen;i++) {        varArray[i] = idNumber.charAt(i);        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {            //error = "错误的身份证号码!.";            return false;        } else if (i < 17) {            varArray[i] = varArray[i]*factorArr[i];        }    }    if (intStrLen == 18) {    //验证日期是否有效        var date8 = idNumber.substring(6,14);        if (isDate8(date8) == false) {            //error = "身份证中日期信息不正确!.";            return false;        }                for(i=0;i<17;i++) {            lngProduct = lngProduct + varArray[i];        }                intCheckDigit = 12 - lngProduct % 11;        switch (intCheckDigit) {            case 10:                intCheckDigit = 'X';                break;            case 11:                intCheckDigit = 0;                break;            case 12:                intCheckDigit = 1;                break;        }                if (varArray[17].toUpperCase() != intCheckDigit) {           // error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";            return false;        }    } else{         var date6 = idNumber.substring(6,12);        if (isDate6(date6) == false) {            return false;        }    }    return true;}function isDate6(sDate) {if(!/^[0-9]{6}$/.test(sDate)) {      return false;   }   var year, month, day;   year = sDate.substring(0, 4);   month = sDate.substring(4, 6);   if (year < 1700 || year > 2500) return false   if (month < 1 || month > 12) return false   return true}//判断是否为“YYYYMMDD”式的时期function isDate8(sDate) {   if(!/^[0-9]{8}$/.test(sDate)) {      return false;   }   var year, month, day;   year = sDate.substring(0, 4);   month = sDate.substring(4, 6);   day = sDate.substring(6, 8);   var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]   if (year < 1700 || year > 2500) return false   if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;   if (month < 1 || month > 12) return false   if (day < 1 || day > iaMonthDays[month - 1]) return false   return true}});</script>


jsp页面:

<body><div><table><tr><td>验证中文:</td><td><input type="text" id="chs" class="easyui-validatebox"data-options="validType:'chs'"></td></tr><tr><td>验证中文,字母,数字,下划线及中文符号:</td><td><input type="text" id="cstringCheck"class="easyui-validatebox" data-options="validType:'stringCheck'"></td></tr><tr><td>手机:</td><td><input type="text" id="mobile" class="easyui-validatebox"data-options="validType:'mobile'"></td></tr><tr><td>身份证号码(简单正则):</td><td><input type="text" id="idCard" class="easyui-validatebox"data-options="validType:'idCard'"></td></tr><tr><td>身份证号码(完整):</td><td><input type="text" id="idCardNo" class="easyui-validatebox"data-options="validType:'idCardNo'"></td></tr></table></div></body>


0 0
原创粉丝点击