JS基础之正则篇

正则验证

邮箱验证

1
/^[a-z0-9]([a-z0-9]*[_-]?[a-z0-9]+)*@[a-z0-9]+[_-]?[a-z0-9]+[\.][a-z]{2,3}([\.][a-z]{2})?$/i

拆分解读

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/ /     正则是用两个斜杠包裹起来的
/^&/ ^&代表着开始结束
/ /i i代表不区分大小写
[a-z0-9] 第一位必须是字母或数字
([a-z0-9]*[_-]?[a-z0-9]+)* ()*代表括号里面的可以是0个或多个
[a-z0-9]* 字母和数字可以出现0次或多次
[_-]? _-这个符号只能出现0次或1次,其实就是不能同时连续写两个或多个横杠或下划线 -- __
[a-z0-9]+ 字母和数字最少出现一次,因为不能以-_ 结尾
@ 必写项
[a-z0-9]+ @之后也同样不能以_-开始或结束
[_-]?
[a-z0-9]+
[\.] 转义 \. 必写项
[a-z]{2,3} 字母最少出现2次最多出现3次
([\.][a-z]{2})? 因为有的邮箱可能是 .com.cn结尾,所以需要再加上这么一段,括号里面代码出现0次或1次
[\.]
[a-z]{2} 字母必须出现2个

手机号验证

1
/^1[3,4,5,6,7,8][0-9]{9}$/

相对而言手机就简单很多了

通过上面的邮箱验证以及手机号验证,拆分解读,其实正则里大部分的东西都用到了。剩下的就是去根据实际需求去灵活运用了

下面列出一个参考手册

修饰符

修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

方括号

表达式 描述
[love] 查找给定集合内的任何字符。。
[^luck] 查找给定集合外的任何字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[love] 查找给定集合内的任何字符。
(red blue

元字符

元字符 描述
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\n 查找换行符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

量词

量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2017-2020 Mr·Huang

请我喝杯咖啡吧~

支付宝
微信