Loading

验证

  var r = /^\+?[1-9][0-9]*$/;  //判断是否为正整数 
      r.test(str);
或者:
function isNumber(value) {         //验证是否为数字
    var patrn = /^(-)?\d+(\.\d+)?$/;
    if (patrn.exec(value) == null || value == "") {
        return false
    } else {
        return true
    }
}

var reg = new RegExp("BPM/", "g");//g,表示全部替换。
var reg1 = new RegExp(",", "g");//g,表示全部替换。

var RegEx = {
    /**
     * 验证邮箱格式
     * @param {} str 要验证的字符串
     * @returns {} true验证通过,是邮箱格式;false验证不通过
     */
    CheckEmail: function (str) {
        var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        return ePattern.test(str);
    },
    /**
     * 检查手机号
     * @param {} str 
     * @returns {} 
     */
    CheckPhoneNumber: function (str) {
        var mPattern = /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[0-9])|(18[0-9]))\d{8}$/;
        return mPattern.test(str);
    },
    /**
     * 检查身份证号
     * @param {} str 
     * @returns {} 
     */
    CheckIDNumber: function (str) {
        var cP = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
        return cP.test(str);
    },
    /**
     * 校验是否为正整数
     * @param {} str 
     * @returns {} 
     */
    CheckPositiveInteger:function(str) {
        var posPattern = /^\d+$/;
        return posPattern.test(str);
    }

}


//////////////////////////////////////////////////
//purpose: 邮箱格式验证                         //
//author: lucl                                 //
//date:2014-02-10                               //
//返回:如果通过验证返回true,否则返回false        //
//////////////////////////////////////////////////
function isEmail(val) {
    var patrn = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
    if (patrn.test(val)) {
        return true;
    }
    return false;
}
//////////////////////////////////////////////////
//purpose: 检查固定电话格式xxx-xxxxxxxx         //
//author: lucl                                 //
//date:2014-02-10                               //
//返回:如果通过验证返回true,否则返回false        //
////////////////////////////////////////////////// 
function isPhone(val) {
    //patrn = /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/;

    patrn = /^1\d{10}$|^(0\d{2,3}-?|\(0\d{2,3}\))?[1-9]\d{4,7}(-\d{1,8})?$/;
    if (val == null || val.length == 0) return true;
    if (!patrn.exec(val)) {
        return false;
    } else {
        return true;
    }
}
//////////////////////////////////////////////////
//purpose: 检查手机号码格式                     //
//author: lucl                                 //
//date:2014-02-10                               //
//返回:如果通过验证返回true,否则返回false        //
////////////////////////////////////////////////// 
function isMobile(val) {
    if (val == null || val.length == 0) return true;
    // patrn = /^((\(\d{3}\))|(\d{3}\-))?1\d{10}$/;
    patrn = /^1\d{10}$|^(0\d{2,3}-?|\(0\d{2,3}\))?[1-9]\d{4,7}(-\d{1,8})?$/;
    if (!patrn.exec(val)) {
        return false;
    } else {
        return true;
    }
}

//////////////////////////////////////////////////
//purpose: 检查邮编格式                         //
//author: lucl                                 //
//date:2014-02-10                               //
//返回:如果通过验证返回true,否则返回false        //
////////////////////////////////////////////////// 
function isPostalCode(val) {
    if (val == null || val.length == 0) return true;
    patrn = /^[0-9]{6}$/;
    if (!patrn.exec(val)) {
        return false
    } else {
        return true
    }
}


//////////////////////////////////////////////////
//purpose: 检查传真格式:                        //
//     XXX-12345678或XXXX-1234567或XXXX-12345678//
//author: lucl                                 //
//date:2014-02-10                               //
//返回:如果通过验证返回true,否则返回false        //
////////////////////////////////////////////////// 
function isFax(val) {
    if (val == null || val.length == 0) return true;
    patrn = /^(\d{3,4}-)?\d{7,8}$/;
    if (!patrn.exec(val)) {
        return false;
    } else {
        return true;
    }
}
//////////////////////////////////////////////////
//purpose: 检查所填内容是否是正整数             //
//author: lucl                                 //
//date:2014-02-10                               //
//返回:如果通过验证返回true,否则返回false        //
////////////////////////////////////////////////// 
function isNum(val) {
    //patrn = /^([1-9]\d*)$|^0$/;
    patrn = /^\d+$/; //于环宇20151202
    if (!patrn.exec(val)) {
        return false;
    } else {
        return true;
    }
}
//////////////////////////////////////////////////
//purpose: 检查所填内容是否是金额(4位小数)    //
//author: lucl                                 //
//date:2014-11-20                               //
//返回:如果通过验证返回true,否则返回false        //
////////////////////////////////////////////////// 
function isMoney(val) {
    var patrn = /^[0-9]+[\.]{0,1}[0-9]{0,4}$/;
    if (!patrn.exec(val)) {
        return false;
    } else {
        return true;
    }
}

//////////////////////////////////////////////////
//purpose: 将日期字符串转换成目标格式                //
//author: lucl                                 //
//date:2014-11-20                              //
//返回:format格式的日期字符串                      //
////////////////////////////////////////////////// 
function formatDate(date, format) {
    if (!date) return;
    if (!format) format = "yyyy-MM-dd";
    switch (typeof date) {
        case "string":
            date = new Date(date.replace(/-/, "/"));
            break;
        case "number":
            date = new Date(date);
            break;
    }
    if (!date instanceof Date) return;
    var dict = {
        "yyyy": date.getFullYear(),
        "M": date.getMonth() + 1,
        "d": date.getDate(),
        "H": date.getHours(),
        "m": date.getMinutes(),
        "s": date.getSeconds(),
        "MM": ("" + (date.getMonth() + 101)).substr(1),
        "dd": ("" + (date.getDate() + 100)).substr(1),
        "HH": ("" + (date.getHours() + 100)).substr(1),
        "mm": ("" + (date.getMinutes() + 100)).substr(1),
        "ss": ("" + (date.getSeconds() + 100)).substr(1)
    };
    return format.replace(/(yyyy|MM?|dd?|HH?|ss?|mm?)/g, function () {
        return dict[arguments[0]];
    });
}
//////////////////////////////////////////////////
//purpose: 检查所填内容是否是身份证号           //
//author: lucl                                 //
//date:2018-09-18                               //
//返回:如果通过验证返回true,否则返回false        //
////////////////////////////////////////////////// 
/*
* 身份证15位编码规则:dddddd yymmdd xx p
* dddddd:6位地区编码
* yymmdd: 出生年(两位年)月日,如:910215
* xx: 顺序编码,系统产生,无法确定
* p: 性别,奇数为男,偶数为女
*
* 身份证18位编码规则:dddddd yyyymmdd xxx y
* dddddd:6位地区编码
* yyyymmdd: 出生年(四位年)月日,如:19910215
* xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女
* y: 校验码,该位数值可通过前17位计算获得
*
* 前17位号码加权因子为 Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]
* 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
* 如果验证码恰好是10,为了保证身份证是十八位,那么第十八位将用X来代替
* 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )
* i为身份证号码1...17 位; Y_P为校验码Y所在校验码数组位置
*/
function isIdCard(val) {
    //15位和18位身份证号码的正则表达式
    var regIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;

    //如果通过该验证,说明身份证格式正确,但准确性还需计算
    if (regIdCard.test(val)) {
        if (val.length == 18) {
            var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //将前17位加权因子保存在数组里
            var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2); //这是除以11后,可能产生的11位余数、验证码,也保存成数组
            var idCardWiSum = 0; //用来保存前17位各自乖以加权因子后的总和
            for (var i = 0; i < 17; i++) {
                idCardWiSum += val.substring(i, i + 1) * idCardWi[i];
            }
            var idCardMod = idCardWiSum % 11;//计算出校验码所在数组的位置
            var idCardLast = val.substring(17);//得到最后一位身份证号码
            //如果等于2,则说明校验码是10,身份证号码最后一位应该是X
            if (idCardMod == 2) {
                if (idCardLast == "X" || idCardLast == "x") {
                    return true;
                } else {
                    return false;
                }
            } else {
                //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
                if (idCardLast == idCardY[idCardMod]) {
                    return true;
                } else {
                    return false;
                }
            }
        }
    } else {
        return false;
    }
}

 

posted @ 2020-09-14 16:51  积山海  阅读(428)  评论(0)    收藏  举报