export function verifyPhone (rule, val, callback) {
  if (!val) {
    callback()
    return
  }
  if (!/^1[0-9]{10,10}$/.test(val)) {
    callback(Error('错误的手机号码'))
  } else {
    callback()
  }
}

export function verifyPhoneRequire (rule, val, callback) {
  if (val === '') {
    callback(Error('请输入手机号'))
  } else if (!/^1[0-9]{10,10}$/.test(val)) {
    callback(Error('错误的手机号码'))
  } else {
    callback()
  }
}

export function verifyId (rule, val, callback) {
  if (!val) {
    callback()
    return
  }

  var reg = /^[1-9]\d{5}(?:18|19|20)\d{2}(?:(?:0[1-9])|(?:1[0-2]))(?:(?:[0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  if (!reg.test(val)) {
    callback(Error('错误的身份证号码'))
  } else {
    callback()
  }
}

export function verifyIdRequire (rule, val, callback) {
  var reg = /^[1-9]\d{5}(?:18|19|20)\d{2}(?:(?:0[1-9])|(?:1[0-2]))(?:(?:[0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  if (val === '') {
    callback(Error('请输入身份证号'))
  } else if (!reg.test(val)) {
    callback(Error('错误的身份证号码'))
  } else {
    callback()
  }
}

export function verifyUsername (rule, val, callback) {
  const regex = /^[a-z]{2,}\d*$/i
  if (regex.test(val)) {
    callback()
  } else {
    callback(new Error('以至少2位字母开头，可包含数字'))
  }
}

export function verifyPassword (rule, val, callback) {
  if (!val) {
    callback()
    return
  }

  const regex = /^(?=.*[a-zA-Z])(?=.*[1-9])(?=.*[\W]).{6,}$/
  if (regex.test(val)) {
    callback()
  } else {
    callback(new Error('密码需包含字母数字及特殊字符，至少6位'))
  }
}
export function verifyGreyList (val, greyList) {
  const arr = val.map(i => {
    return {
      str: i.split(' - ')[0],
      id: greyList.find(j => j.name === i.split(' - ')[1]).id
    }
  })
  const tempArr = []
  for (const item of arr) {
    for (const i of item.str.trim().split('/').filter(i => i !== '')) {
      tempArr.push({ identityPrefix: i, identityGreyListId: item.id })
    }
  }
  return tempArr
}
