美文网首页
jquery-Validator校验正则记录

jquery-Validator校验正则记录

作者: 虾米不是鱼 | 来源:发表于2020-09-09 14:29 被阅读0次

最近在做项目的时候,有很多表单验证的内容,在此进行记录以下

在校验表单的时候主要使用了Jquery validator插件其中自定义校验如下

手机号

  jQuery.validator.addMethod("isMobile", function(value, element) {
    var length = value.length;
    var mobile = /(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/;
      // /^1\d{10}$/  /(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/
    return this.optional(element) || (length == 11 && mobile.test(value));
  }, "请正确填写您的手机号码");

带区号的电话号码

  jQuery.validator.addMethod("isPhone", function(value, element) {
    var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
    var isMob=/^((\+?86)|(\(\+86\)))?(13[012356789][0-9]{8}|15[012356789][0-9]{8}|18[02356789][0-9]{8}|147[0-9]{8}|1349[0-9]{7})$/;
    return this.optional(element) || (isMob.test(value)||isPhone.test(value));
  }, "请正确填写您的电话号码,含有区号的请加\"-\"");

4-20位,中文,字母,数字,中间可以存在空格,首尾不能有空格

    jQuery.validator.addMethod("isCompanyName", function(value, element,params) {
        var strLength = value.length;
        var reg =/^[\u4e00-\u9fa5A-Za-z0-9][\u4e00-\u9fa5A-Za-z0-9\s]*[\u4e00-\u9fa5A-Za-z0-9]$/;
        return this.optional(element) || reg.test(value) && 4<=strLength<=20;
    }, "4-20位,中文,字母,数字,中间可以存在空格,首尾不能有空格");

6-16位字母,数字,英文符号,区分大小写

    jQuery.validator.addMethod("isPassWord", function(value, element,params) {
        var strLength = value.length;
        var reg =/^([A-Za-z0-9]|[^0-9/D]){6,16}$/;
        return this.optional(element) || reg.test(value) && 4<=strLength<=20;
    }, "6-16位字母,数字,英文符号,区分大小写");

传真

jQuery.validator.addMethod("fax", function(value, element){
        return this.optional(element) || /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/.test(value);
    }, "传真格式错误");

身份证校验

    jQuery.validator.addMethod("isIdCardNo", function (value, element) {
        return this.optional(element) || isIdCardNo(value);
    }, "身份证号码错误");

    //增加身份证验证
    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;
    }
    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
    }

    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
    }

相关文章

  • jquery-Validator校验正则记录

    最近在做项目的时候,有很多表单验证的内容,在此进行记录以下 在校验表单的时候主要使用了Jquery validat...

  • 正则表达式

    //正则校验html标签let reg = /<[^<>]+>/g //正则校验%let regP = /[%]/...

  • Vue 自定义校验

    自定义校验,添加正则校验 以下是常用的正则(补充中)

  • Ant Form使用总结 —— 校验

    正则校验 使用item属性rules[]字段中pattern进行正则校验,可进行多正则验证不同message 问题...

  • Golang 正则表达式

    参考golang之正则校验golang正则使用总结

  • java正则校验正确性

    java校验正则表达式是否正确。 try { String regex = "需要校验的正则表达式"; P...

  • 正则

    正则 1.什么是正则:用来操作字符串的规则; 正则就是用来操作(校验,捕获)“字符串”的 1)校验:返回布尔值 t...

  • 基础工具方法记录

    身份证号正则校验 手机号校验 座机号校验 json序列化处理

  • 分享几个项目中常用的正则校验方式

    html 正则数字转化为大写 校验小数点后留取几位小数 限制textarea最多输入长度显示 正则校验如果输入回车...

  • 正则校验

    /*校验手机号码*/ function isValidPhone(mobile){ // var re = /^(...

网友评论

      本文标题:jquery-Validator校验正则记录

      本文链接:https://www.haomeiwen.com/subject/wmueektx.html