js中通用验证器(合法uri,大写、小写、大小写字母,email,phone,国际电话,password)

本文介绍了一组用于验证各种常见数据格式的JavaScript函数,包括URL、电子邮件地址、电话号码等,确保了数据输入的有效性和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* <pre>
  ====================================================================
  通用验证器
  ====================================================================</pre>
  @auther
 */
/** 合法uri */
export function validateURL(textval) {
  const urlregex = /^(https?|ftp|file):\/\/[-A-Za-z0-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 validateAlphabets(str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}

/**
 * validate email
 * @param email
 * @returns {boolean}
 */
export function validateEmail(email) {
  const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  return re.test(email)
}

/**
 * validate phone
 * @param phone
 * @returns {boolean}
 */
export function validatePhone(phone) {
  const re = /^1(3|4|5|6|7|8|9)\d{9}$/
  return re.test(phone)
}

/**
 * 国际电话
 * @param phone
 * @returns {boolean}
 */
export function validatePhoneInternational(phone) {
  const re =
    /\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*\d\W*(\d{1,2})$/
  return re.test(phone)
}

/**
 * validate password
 * @param password
 * @returns {boolean}
 */
export function validatePassword(password) {
  var lengths = password.length //字符长度
  var numbLetter = /^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*)/ //大小写字母数字
  var Chinese = /[\u4E00-\u9FA5]/g //中文
  var blank = /^\S+$/gi //空格
  var special = /[`~()\-+=<>?:"{}|,\/;'\\[\]·~!¥……()——\-+={}|《》?:“”【】、;‘',。、]/im //禁止输入的特殊字符
  var resultData = []
  var text = null //显示文本
  if (lengths < 6 || lengths > 16) {
    resultData.push('密码位数为6-16位,是包含大小写字母和数字的组合')
  }
  if (!numbLetter.test(password) || Chinese.test(password)) {
    resultData.push('密码是包含大小写字母和数字的组合')
  }
  if (!blank.test(password) || special.test(password)) {
    resultData.push('密码中可使用的特殊字符 !@#$%^&*._')
  }
  if (resultData.length > 1) {
    text = '密码位数为6-16位,包含大小写字母和数字的组合.可使用 字符!@#$%^&*._(不含空格)'
  } else {
    text = resultData[0]
  }
  return text
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值