界定符
- 在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
修正模式
测试地址
网友评论