
// 身份证校验
export const IdCardValidator = (value,rule) =>{
  if(!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)){
    return '输入的身份证长度或格式错误'
  }
  //身份证城市
  var aCity = {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: "国外" };
  let citydm = value ? value.substr(0, 2) : null
  if(citydm){
    if (!aCity[parseInt(citydm)]) return '身份证地区非法'
  }
  // 出生日期验证
  var sBirthday = (value.substr(6, 4) +"-" + Number(value.substr(10, 2)) + "-" + Number(value.substr(12, 2))).replace(/-/g, "/"),d = new Date(sBirthday);
  if ( sBirthday !== d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate()) {
    return '身份证上的出生日期非法'
  }
  // 身份证号码校验
  var sum = 0,
  weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
  codes = "10X98765432";
  for (var i = 0; i < value.length - 1; i++) {
    sum += value[i] * weights[i]; 
  }
  var last = codes[sum % 11]; //计算出来的最后一位身份证号码
  if (value[value.length - 1] !== last) {
    return '输入的身份证号非法'
  }
}

// 手机号校验
export const phoneValidator = (value,rule) =>{
  if(!value){
    return '手机号不能为空'
  }else{
    const reg = /^1[3|4|5|7|8][0-9]\d{8}$/;
    if(!reg.test(value)){
      return '请输入正确的手机号'
    }
  }
} 

// 车牌号校验
export const hphmValidator = (value,rule) =>{
  const ptreg =  /^[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘桂琼川贵云渝藏陕甘青宁新粤]{1}[ABCDEFGHJKLMNOPQRSTUVWXY]{1}[0-9A-Z]{5}$/u;
  const xnyreg = /^[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘桂琼川贵云渝藏陕甘青宁新粤]{1}[A-Z]{1}(([0-9]{5}[DABCEFGHJK]$)|([DABCEFGHJK][A-HJ-NP-Z0-9][0-9]{4}$))/; // 2021年新能源车牌不止有DF
  if (!value) {
    return '请选择车牌号'
  } else {
    if (value.length === 7) {
      if (!ptreg.test(value)) return '请输入正确的普通车牌号'
    } else if (value.length === 8) {
      if (!xnyreg.test(value)) return '请输入正确的新能源车牌号'
    } else {
      return '车牌号错误'
    }
  }
}

// 邮箱校验
export const emailValidator = (value,rule) => {
    const reg = /^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;
    if (!value) {
      return '邮箱不能为空'
    } else {
      if (!reg.test(value)) return '请输入正确的邮箱地址'
    }
};


  