修饰符用于执行区分大小写和全局匹配:
- i 忽略大小写
- g 全局匹配
var patt = new RegExp(/x/i/g);
方括号用于查找某个范围内的字符:
- […] 查找方括号之间的任何字符
- [^…] 查找不在方括号之间的字符
- [0-9] 查找0至9的数字
- [a-z] 查找a-z的小写字符
- [A-Z] 查找A-Z的大写字符
- [A-z] 查找A-z的字符
- (…|…) 查找任何指定的选项
var patt = new RegExp(['x']);
量词
- n+ 至少一个n
- n* 任意多个n
- n? 零个或1个n
- x{m, n} 匹配最少m个,最少n个x
- /^x{n}$/ 匹配正好n个x
- n$ 匹配以n结尾的字符串
- ^n 匹配以n开头的字符串
- ?=n 匹配其后紧接n的字符串
- ?!n 匹配其后没有紧接n的字符串
元字符是拥有特殊含义的字符:
- . 匹配除‘\n’之外的任何单个字符,要匹配‘\n’在内的单个字符,用[.\n]的模式
- \d 数字
- \D 非数字
- \w 字母,数字及_
- \W 非字母,数字及_
- \o null
- \s 空白字符、空格、制表符、换行等
- \S 非空白字符等
- \r 回车
- \b 空格
- \t 制表
- \f 进制字符
RegExp方法
- exec 检索字符串中指定的值,返回找到的值及位置,未找到则返回null
- test 检索字符串中指定的值,返回true或false
var str = 'abcdefg',
patt = /abc/g,
a = patt.exec(str),
b = patt.test(str);
// a ['abc', index: 0, input: "abcdefg"]
// b true
支持正则表达式的String对象方法
- search 检索与正则表达式相匹配的值,返回其位置,找不到返回-1
- match 找到一个或多个正则表达式的值,返回找到的值(数组),找不到返回null
- replace
- split