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 tip = "ok"; // var pass = true; // if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) { // tip = "身份证号格式错误"; // pass = false; // } else if (!city[code.substr(0, 2)]) { // tip = "身份地址编码错误"; // 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]) { // tip = "校验位错误"; // pass = false; // } // } // } // if (!pass) // console.log(tip) let idcardTest = /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/ if (!idcardTest.test(code)) { return false; } else { return true; } } //手机号校验 function isPoneAvailable(poneInput) { var myreg = /^[1][3-9][0-9]{9}$/; if (!myreg.test(poneInput)) { return false; } else { return true; } } //生日 function getBirthdatByIdNo(iIdNo) { var tmpStr = ""; iIdNo = iIdNo.replace(/^\s+|\s+$/g, ""); if (iIdNo.length == 15) { tmpStr = iIdNo.substring(6, 12); tmpStr = "19" + tmpStr; tmpStr = tmpStr.substring(0, 4) + "/" + tmpStr.substring(4, 6) + "/" + tmpStr.substring(6) } else { tmpStr = iIdNo.substring(6, 14); tmpStr = tmpStr.substring(0, 4) + "/" + tmpStr.substring(4, 6) + "/" + tmpStr.substring(6) } return tmpStr; } function getSex(idcard) { let sex = '' if (parseInt(idcard.substr(16, 1)) % 2 == 1) { sex = '男' } else { sex = '女' } return sex } function authCode(str){ let length = str.replace(/\s/g,"").length return length } module.exports = { IdentityCodeValid, isPoneAvailable, getBirthdatByIdNo, getSex, authCode }