/**
 * Created by jiachenpan on 16/11/18.
 */

export function isvalidUsername (str) {
  const validMap = ['admin', 'editor']
  return validMap.indexOf(str.trim()) >= 0
}

/* 合法uri */
export function validateURL (textval) {
  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
  return urlregex.test(textval)
}

/* 小写字母 */
export function validateLowerCase (str) {
  const reg = /^[a-z]+$/
  return reg.test(str)
}

/* 大写字母 */
export function validateUpperCase (str) {
  const reg = /^[A-Z]+$/
  return reg.test(str)
}

/* 大小写字母 */
export function validatAlphabets (str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}

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

export function verifyId (rule, val, callback) {
  const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
  if (!reg.test(val)) {
    callback(Error('错误的身份证号码'))
  } else {
    callback()
  }
}
export function verifyId_HUZHAO (rule, val, callback) {
  const reg = /^[a-zA-Z0-9]{5,17}$/
  if (!reg.test(val)) {
    callback(Error('错误的护照号码'))
  } else {
    callback()
  }
}
export function verifyId_GANGAO (rule, val, callback) {
  const reg = /^[HMhm]([0-9]{10}|[0-9]{8})$/
  if (!reg.test(val)) {
    callback(Error('错误的港澳通行证'))
  } else {
    callback()
  }
}
export function verifyId_TAIBAO (rule, val, callback) {
  const reg = /^[HMhm]([0-9]{10}|[0-9]{8})$/
  const reg1 = /^[HMhm]([0-9]{10}|[0-9]{8})$/

  if (!reg.test(val) || !reg1.test(val)) {
    callback(Error('错误的台湾通行证'))
  } else {
    callback()
  }
}
export const canBeEmptyId = (rule, val, callback) => {
  const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
  if (val && !reg.test(val)) {
    callback(Error('错误的身份证号码'))
  } else {
    callback()
  }
}
