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
}