从零开始学jquery Validate 自定义验证

/**
     * 身份证号码验证
     *
     */
    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 parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");
        var varArray = new Array();
        var intValue;
        var lngProduct = 0;
        var intCheckDigit;
        var intStrLen = num.length;
        var idNumber = num;
// initialize
        if ((intStrLen != 15) && (intStrLen != 18)) {
            return false;
        }
// check and set value
        for(i=0;i<intStrLen;i++) {
            varArray[i] = idNumber.charAt(i);
            if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
                return false;
            } else if (i < 17) {
                varArray[i] = varArray[i] * factorArr[i];
            }
        }

        if (intStrLen == 18) {
//check date
            var date8 = idNumber.substring(6,14);
            if (isDate8(date8) == false) {
                return false;
            }
// calculate the sum of the products
            for(i=0;i<17;i++) {
                lngProduct = lngProduct + varArray[i];
            }
// calculate the check digit
            intCheckDigit = parityBit[lngProduct % 11];
// check last digit
            if (varArray[17] != intCheckDigit) {
                return false;
            }
        }
        else{ //length is 15
//check date
            var date6 = idNumber.substring(6,12);
            if (isDate6(date6) == false) {

                return false;
            }
        }
        return true;

    }


 
</pre><pre code_snippet_id="1686640" snippet_file_name="blog_20160517_3_7545046" name="code" class="javascript">  //自定义验证规则
        //addMethod(methodName,method,message)
        //验证邮政编码
        $.validator.addMethod("isZipCode", function(value, element) {
            var telReg = /^[0-9]{6}$/;//邮政编码正则表达式
            return this.optional(element) || (telReg.test(value));
        }, "请正确填写您的邮政编码");
        // 身份证号码验证
        jQuery.validator.addMethod("idcardno", function(value, element) {
            return this.optional(element) || isIdCardNo(value);
        }, "请正确输入身份证号码");

        //字母数字
        jQuery.validator.addMethod("alnum", function(value, element) {
            var numReg = /^[a-zA-Z0-9]+$/;
            return this.optional(element) ||numReg.test(value);
        }, "只能包括英文字母和数字");
        // 汉字
        jQuery.validator.addMethod("chcharacter", function(value, element) {
            var tel = /^[\u4e00-\u9fa5]+$/;
            return this.optional(element) || (tel.test(value));
        }, "请输入汉字");

        // 字符最小长度验证(一个中文字符长度为2)
        jQuery.validator.addMethod("stringMinLength", function(value, element, param) {
            var length = value.length;
            for ( var i = 0; i < value.length; i++) {
                if (value.charCodeAt(i) > 127) {
                    length++;
                }
            }
            return this.optional(element) || (length >= param);
        }, $.validator.format("长度不能小于{0}!"));

        // 字符最大长度验证(一个中文字符长度为2)
        jQuery.validator.addMethod("stringMaxLength", function(value, element, param) {
            var length = value.length;
            for ( var i = 0; i < value.length; i++) {
                if (value.charCodeAt(i) > 127) {
                    length++;
                }
            }
            return this.optional(element) || (length <= param);
        }, $.validator.format("长度不能大于{0}!"));

        // 字符验证
        jQuery.validator.addMethod("string", function(value, element) {
            return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);
        }, "不允许包含特殊符号!");

        // 手机号码验证
        jQuery.validator.addMethod("mobile", function(value, element) {
            var length = value.length;
            var telReg =/^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
            return this.optional(element) || (length == 11 &&telReg.test(value));
        }, "手机号码格式错误!");

        // 电话号码验证
        jQuery.validator.addMethod("phone", function(value, element) {
            var tel = /^(\d{3,4}-?)?\d{7,9}$/g;
            return this.optional(element) || (tel.test(value));
        }, "电话号码格式错误!");
        // 必须以特定字符串开头验证
        jQuery.validator.addMethod("begin", function(value, element, param) {
            var begin = new RegExp("^" + param);
            return this.optional(element) || (begin.test(value));
        }, $.validator.format("必须以 {0} 开头!"));

        // 验证两次输入值是否不相同
        jQuery.validator.addMethod("notEqualTo", function(value, element, param) {
            return value != $(param).val();
        }, $.validator.format("两次输入不能相同!"));

        // 验证值不允许与特定值等于
        jQuery.validator.addMethod("notEqual", function(value, element, param) {
            return value != param;
        }, $.validator.format("输入值不允许为{0}!"));

        // 验证值必须大于特定值(不能等于)
        jQuery.validator.addMethod("gt", function(value, element, param) {
            return value > param;
        }, $.validator.format("输入值必须大于{0}!"));

        // 验证值小数位数不能超过两位
        jQuery.validator.addMethod("decimal", function(value, element) {
            var decimal = /^-?\d+(\.\d{1,2})?$/;
            return this.optional(element) || (decimal.test(value));
        }

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值