JS驗證手機號格、身份證號

JS驗證手機號

驗證手機號是否爲空,並驗證手機號格式是否正確。

function verifyPhone() {
            var phone = $(".phone").val()
            var telReg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
            if (phone === "") {
                alert("手機號不能爲空")
            } else {
                var b = telReg.test(phone);
                if (b) {
                    alert("手機號格式正確")
                } else {
                    alert("手機號格式不正確")
                }
            }
        }

驗證身份證號

該驗證方法比較精確的驗證身份證號的格式,根據長度,開頭三爲數字,等判斷身份證最後一位。

function IdentityCodeValid(code) {
            var city = {
                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: "新疆",
                71: "臺灣",
                81: "香港",
                82: "澳門",
                91: "國外"
            };
            var pass = true;

            if (
                !code ||
                !/(^[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]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/i.test(
                    code
                )
            ) {
                pass = false;
            } else if (!city[code.substr(0, 2)]) {
                pass = false;
            } else {
                //18位身份證需要驗證最後一位校驗位
                if (code.length == 18) {
                    code = code.split("");
                    //∑(ai×Wi)(mod 11)
                    //加權因子
                    var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
                    //校驗位
                    var parity = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];
                    var sum = 0;
                    var ai = 0;
                    var wi = 0;
                    for (var i = 0; i < 17; i++) {
                        ai = code[i];
                        wi = factor[i];
                        sum += ai * wi;
                    }
                    var last = parity[sum % 11];
                    if (parity[sum % 11] != code[17]) {
                        pass = false;
                    }
                }
            }
            return pass;
        };
        

如有轉載,請標明出處。謝謝配合,歡迎指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章