/**
 * 移动电话号码验证
 * @param str
 * @returns {boolean}
 */
export function isMobile (str) {
  const mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(18[0-9]{1})|(17[0-9]{1})|(19[0-9]{1}))+\d{8})$/
  return mobile.test(str)
}

/**
 * 固定电话号码验证
 * @param str
 * @returns {boolean}
 */
export function isPhone (str) {
  const phone = /(^(\d{3,4}-)?\d{6,8}$)|(^(\d{3,4}-)?\d{6,8}(-\d{1,5})?$)/
  return phone.test(str)
}

/**
 * 固定电话或移动电话号码验证
 * @param str
 * @returns {boolean}
 */
export function isPhoneOrMobile (str) {
  const phone = /(^(\d{3,4}-)?\d{6,8}$)|(^(\d{3,4}-)?\d{6,8}(-\d{1,5})?$)|(^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(18[0-9]{1})|(17[0-9]{1})|(19[0-9]{1}))+\d{8})$)/
  return phone.test(str)
}

/**
 * 开户行账号验证
 * 开户行账号只能为数字、长度限定为1到20位之间
 * @param str
 * @returns {boolean}
 */
export function isBankNumber (str) {
  // const bankNumber = /^([1-9]{1})(\d{15}|\d{18})$/
  const bankNumber = /^[1-9]\d{0,19}$/
  return bankNumber.test(str)
}

/**
 * 联系人联系方式验证
 * 联系人联系方式只能为数字，长度限定为20
 * @param str
 * @returns {boolean}
 */
export function isLinkMobile (str) {
  const linkMobile = /^[0-9]\d{19}$/
  return linkMobile.test(str)
}

/**
 * 银行卡号验证
 * 银行卡号:12位 16位 17 18 19
 * @param str
 * @returns {boolean}
 */
export function isBankNum (str) {
  const bankNumber = /^([1-9]{1})(\d{11}|\d{15}|\d{16}|\d{17}|\d{18})$/
  return bankNumber.test(str)
}

/**
 * 邮箱验证
 * @param str
 * @returns {boolean}
 */
export function isEmail (str) {
  const email = /^((https|http|ftp|rtsp|mms)?:\/\/)?(([0-9a-z_!~*'().&amp;=+$%-]+: )?[0-9a-z_!~*'().&amp;=+$%-]+@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-z_!~*'().;?:@&amp;=+$,%#-]+)+\/?)$/
  return email.test(str)
}

export default {isMobile, isPhone, isBankNumber, isLinkMobile, isBankNum, isPhoneOrMobile, isEmail}
