| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | 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}
 |