常见的一些校验规则

常见的一些校验规则

    • 校验输入必须为汉字,包含少数民族姓名中"·"的校验
    • 校验是否是车牌号
    • 校验是否是手机号或者电话号
    • 校验是否是校验正整数
    • 校验是否是纯数字(Integer)
    • 校验是否是非负数
    • 校验是否是邮箱
    • 校验是否是数字和英文字母组成
    • 校验是否是非负整数
    • 校验是否符合日期格式
    • 校验是否区号
    • 校验是否包含IOQ
    • 校验是否邮编校验
    • 身份证校验
    • 小数位不超过2位

校验输入必须为汉字,包含少数民族姓名中"·"的校验

_isChinese(strValue) {
     
			let reg = /^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/;
			return reg.test(strValue);
		}

校验是否是车牌号

_isLicensePlate(strValue) {
     
			let license_plate_reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]{1}[A-HJ-NP-Z]{1}[A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
			return license_plate_reg.test(strValue);
		}

校验是否是手机号或者电话号

_isTelOrMobile(strValue) {
     
            let phone_reg = /^0\d{2,3}-\d{7,8}(-\d{1,6})?$/;
            let mobile_reg = /^(1(3|4|5|6|7|8|9)\d{9})$/;
            return phone_reg.test(strValue) || mobile_reg.test(strValue);
        }

校验是否是校验正整数

_isPosInteger(strValue) {
     
            let reg = /^[1-9]*[1-9][0-9]*$/;
            return reg.test(strValue);
        }

校验是否是纯数字(Integer)

_isInteger(strValue) {
     
            let reg = /^[0-9]*$/;
            return reg.test(strValue);
        }

校验是否是非负数

_isNonnegative(strValue) {
     
            let reg = /^((\d|[1-9]\d+)(\.\d+)?)$/;
            return reg.test(strValue);
        }

校验是否是邮箱

_isEmail(strValue) {
     
            let reg = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
            return reg.test(strValue);
        }

校验是否是数字和英文字母组成

_isNumOrLetter(strValue) {
     
            let reg = /^[A-Za-z0-9-]+$/;
            return reg.test(strValue);
        }

校验是否是非负整数

_isNonnegativeInt(strValue) {
     
            let reg = /^\d+$/;
            return reg.test(strValue);
        }

校验是否符合日期格式

_isValidDate(strValue) {
     
            let reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
            return reg.test(strValue);
        }

校验是否区号

_isAreaCode(strValue) {
     
            let reg = /^0(\d{1,3}-?)/;
            return reg.test(strValue);
        }

校验是否包含IOQ

_isIOQ(strValue) {
     
            let reg = /.*i.*|.*I.*|.*o.*|.*O.*|.*q.*|.*Q.*/;
            return reg.test(strValue);
        }

校验是否邮编校验

_isPostCode(strValue) {
     
            let reg = /^[0-9][0-9]{5}$/;
            return reg.test(strValue);
        }

身份证校验

_checkIdentifyCard(idcard, text) {
     
            let errMsg = "";
            if (idcard.trim() != "") {
     
                let Errors = new Array("验证通过!", text + "位数不对!", text + "出生日期超出范围或含有非法字符!",
                    text + "不符合校验规则!", "身份证地区非法!");
                let area = {
     
                    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: "xingjiang",
                    71: "台湾",
                    81: "香港",
                    82: "澳门",
                    91: "国外"
                }

                var Y, JYM;
                var S, M;
                var idcard_array = new Array();
                idcard_array = idcard.split("");
                var ereg = "";
                // 身份号码位数及格式检验
                switch (idcard.length) {
     
                    case 15:
                        if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 ||
                            ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard
                                .substr(6, 2)) + 1900) % 4 == 0)) {
     
                            ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; // 测试出生日期的合法性
                        } else {
     
                            ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; // 测试出生日期的合法性
                        }
                        if (!ereg.test(idcard)) {
     
                            errMsg = Errors[2];
                        }
                        break;
                    case 18:
                        // 18位身份号码检测
                        // 出生日期的合法性检查
                        // 闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
                        // 平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
                        if (parseInt(idcard.substr(6, 4)) % 4 == 0 ||
                            (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard
                                .substr(6, 4)) % 4 == 0)) {
     
                            ereg = /^[1-9][0-9]{5}(19[0-9]{2}|20[0-1][0-9])((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9X]$/; // 闰年出生日期的合法性正则表达式
                        } else {
     
                            ereg = /^[1-9][0-9]{5}(19[0-9]{2}|20[0-1][0-9])((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9X]$/; // 平年出生日期的合法性正则表达式
                        }
                        if (ereg.test(idcard)) {
      // 测试出生日期的合法性
                            // 计算校验位
                            S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) *
                                7 +
                                (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) *
                                9 +
                                (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) *
                                10 +
                                (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) *
                                5 +
                                (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) *
                                8 +
                                (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) *
                                4 +
                                (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) *
                                2 +
                                parseInt(idcard_array[7]) * 1 +
                                parseInt(idcard_array[8]) * 6 +
                                parseInt(idcard_array[9]) * 3;
                            Y = S % 11;
                            M = "F";
                            JYM = "10X98765432";
                            M = JYM.substr(Y, 1); // 判断校验位
                            if (!(M == idcard_array[17])) {
     
                                errMsg = Errors[3];
                            }
                        } else {
     
                            errMsg = Errors[2];
                        }
                        break;
                    default:
                        errMsg = Errors[1];
                        break;
                }
                if (errMsg === "") {
     
                    // 地区检验
                    if (area[parseInt(idcard.substr(0, 2))] == null) {
     
                        errMsg = Errors[4];
                    }
                }
            }
            return errMsg;
        }

小数位不超过2位

_decimalPoint(strValue){
     
        	let reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/;
        	return reg.test(strValue);
        }

你可能感兴趣的:(javascript)