匹配基本要数:
(1)字符类。
(2)数量限定符。
(3)位置限定符。
(4)特殊符号。
一、字符类
. 匹配任意一个字符。 .abc 可以匹配 abcD abc6
[] 匹配括号中的任意字符。 [abc]d 可以匹配 ad bb cd
- 表示[ ]里的范围。 [a-zA-Z0-9] 可以匹配非划线,下划线的数字,字母
^ 位于[ ]括号的开头。 [^xy]1 匹配除[ ]括号里的字符外的任意一个字符, a1,b1
二、数量限定符
? 紧跟在它前面的单元应匹配零次或一次。
+ 紧跟在它前面的单元应匹配一次或多次。
* 紧跟在它前面的单元应匹配零次或多次。
{N} 紧跟在它前面的单元应精确匹配N次。
{N,} 紧跟在它前面的单元应匹配至少N次。
{,N} 紧跟在它前面的单元应匹配最多N次。
{N,M} 紧跟在它前面的单元应至少匹配N次,最多匹配M次。
注意:“前面的单元”默认是指?或+前面的字符
三、位置限定符
^ 匹配行首的位置 ^Content匹配于一行开头的Content
‘匹配位于末行的;号,^$匹配空行
\< 匹配单词开头的位置 \<th....匹配the,不匹配ethe
\> 匹配单词结尾的位置 p\> 匹配sdp,不匹配spd
\b 匹配单词结尾或开头的位置 \bat 匹配atc at\b 匹配cat
\B 匹配单词非开头或结尾的位置 \Bat 匹配sssacqq 不匹配 atc、cat
四、特殊符号
\ 转义字符,普通字符转义成特殊字符,特殊字符转义成普通字符。比如 .为特殊字符 \.转义为普通字符,<为普通字符 \<转义为特殊字符。
( ) 将正则表达式的一部分组成一个单元,可对单元使用数量限定符。
| 表示两个子表达式,表示或的关系。
基础匹配:
(1)匹配数字
符号:/d
匹配规则:[0-9]
(2)匹配非数字,字母类型
符号:/D
匹配规则:[a-z] ([A-Z])
(3)匹配非下划线,划线
符号:\w
匹配规则:[a-zA-Z0-9]
(4)匹配下划线,划线
符号:\W
匹配规则:[^a-zA-Z0-9]
(5)匹配非空白区域
符号:\S
匹配规则:[^\S]
例子:
'10001,11212'.match(/((0|9){1,3})+[^,]1/g)
返回["0001"];
先匹配在1~3区间内,0或9随意组合,再匹配去除逗号1(两个匹配单元)
常用正则表达式:
1.IP地址
\d+\.\d+\.\d+\.\d+
2.判断账号是否合法
^[a-zA-Z0-9][a-zA-Z0-9_]{4,15}$
3.日期格式
^\d{4}-\d{1,2}-\d{1,2}
4.非零正整数
/^[1-9]\d*$/
5.汉字
[\u4e00-\u9fa5]
6.邮箱
[\w!#%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
7.网址
[a-zA-z]+://[^\s]*
8.身份证
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
9.邮编
[1-9]\d{5}(?!\d)
常见正则: