界定符
- 在js中界定符为
/
- 界定符并不作为正则表达式的一部分,只是便于解析器识别正则表达式
原子
- 在正则表达式中原子作为最小匹配单位,分为可见原子和不可见原子
可见原子
- 就是任何Unicode编码表可以找到的可见字符
- 标点符号
- 数字,字母
- 汉语,日语,阿拉伯语等象形文字
- Φ,δ,β,γ等数理化符号
不可见原子
- 就是任何Unicode编码表可以找到的不可见字符
- \n 换行
- \r 回车
- \t 水平制表
- 空格
- 其他
元字符
- 筛选原子
-
|
选择关系,可以理解为or
-
[]
,匹配方括号中的任意一个字符
-
[^ ]
匹配除过方括号内的任意一个字符
- 表示原子的集合
-
.
除换行符之外的任意一个字符
-
\d
匹配任意一个十进制数字
-
\D
匹配任意一个十进制数字
-
\s
匹配任意一个不可见原子
-
\S
匹配任意一个可见原子
-
\w
匹配任意一个字母数字下划线
-
\W
......
量词
- 定义原子匹配次数
-
{n}
匹配原子出现n次
-
{n,m}
匹配原子出现n~m次
-
{n,}
匹配原子出现n次以上
-
*
匹配原子出现{0,}次
-
+
匹配原子出现{1,}次
-
?
匹配原子出现{0,1}次
边界控制
- 用于指定模式的边界条件
-
^
开头
-
$
结尾
-
()
将括号部分看做一个原子(模式单元)
贪婪模式和懒惰模式
- 正则表达式在匹配时会尽可能多的匹配符号模式的字符串,举个例子
'123456789'.replace(/\d{2,5}/g,'x');
//xx
'123456789'.replace(/\d{2,5}?/g,'x');
//xxxx9
修正模式
测试地址
网友评论