一. 正则表达式
正则表达式是定义一种规则去匹配符合规则的字符.
二.特殊符号的含义
^ 符号
^ 的含义取决于它出现的位置
-
^出现在正则表达式开头: 匹配字符串的开头位置.
-
在字符集中的开头位置:^ 表示否定字符集。在字符集 [ ] 内,如果 ^ 出现在开头位置,它将取反字符集的匹配。
例如,正则表达式 `[^0-9]` 表示匹配除了数字之外的任何字符。它将匹配任何非数字字符。
. 符号
.匹配换行符以外的任意字符
\w 和 \W
\w: 匹配任何字母、数字和下划线, 等价于[ A-Za-z0-9_ ]。
\W: 匹配任意不是基本拉丁字母表中单词(字母数字下划线)字符的字符。等价于[ ^A-Za-z0-9]
\d 和\D
\d: 匹配任意数字,=> [0-9]
\D: 匹配任意一个不是数字的字符。 => [ ^0-9 ]
\s
匹配任意的空白符,包括空格,制表符,换页符和其他Unicode空格。 => [\f\n\r\t\v]
\b
匹配单词的开始或结束
$
匹配字符串的结束(以*** 结束)
+
+代表前面的字符必须至少出现一次或多次。
eg: runoo+b,可匹配runooob,runooooooob等。
*
代表前面的字符可以不出现,也可以出现一次或多次
?
代表前面的字符最多可出现一次(0次、1次)
三.修饰符
i: 不区分大小写
g: 全局匹配
m: 多行匹配
s: 默认情况下的圆点 · 是匹配除换行符\n之外的任何字符,加上s之后,·中包含换行符\n。
字符簇: [ ],当在一组[]^时,它表示非,排除的意思。
四. 常用的正则表达式
- 匹配16进制颜色值
var regex = /#([0-9A-Fa-f]{6}|[0-9A-fa-f]{3})/
- 匹配日期,如yyyy-mm-dd 格式
var regex = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/
- 匹配QQ号
var regex = /^[1-9][0-9]{4,10}$/g;
- 手机号码正则
var regex = /^1[345678]\d{9}$/g;
- 用户名正则
var regex = /^[a-zA-Z\$][a-zA-Z0-9_\$]{4,16}$/;