邮箱、手机号正则表达式分析

1,768 阅读1分钟

知识准备

  1. 我们要知道基本的正则表达式知识
  • 开始元字符/^
  • 包含元字符[]
  • $/结束元字符

邮箱校验分析

需求分析

  • 要以[a-z][A-Z][0-9]、以及_-开头
  • 中间内容可以随便填写
  • 字符串中要匹配有@,并且后面紧跟[a-z][A-Z][0-9]、以及_-字符并且最少匹配两次
  • 以.加上2~3个字母结尾

源代码

export const isEmail = (e) => {
  return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-]{2,})+(.[a-zA-Z]{2,3})$/.test(e)
}

代码段解析

  1. /^([a-zA-Z0-9_-])这段代码块表示开头首字母可以接受小写字母、大写字母、数字以及-和_两个字符
  2. @([a-zA-Z0-9_-]{2,})字符串需要符合@后面紧跟最少两个,小写字母、大写字母、数字以及-和_组成的字符串,比如@qq、@163
  3. (.[a-zA-Z]{2,3})$/最后,字符串需要匹配以.加上两个到三个的字符结尾,比如.com、.cn

手机号校验分析

需求分析

  • 以现有三大供应商电话号码资源开头
  • 格式为十一个纯数字组成

源代码

export const isMobile = (e) => {
  return /^(13|14|15|17|18|19)[0-9]{9}$/.test(e)
}

代码段分析

  1. /^(13|14|15|17|18|19)开头要以13、14、15、17、18、19现有的电话号码资源开头
  2. [0-9]{9}$/因为开头已经有了两位数字开头,所以紧接着9个数字即可

结束

第二篇文章,两个很简单的正则表达式,只能满足一些比较简单的需求,以一个小白的角度分析解释,后续会继续补充一些高阶一点的正则表达式,谢谢大家

QQ截图20211228225102.png