实例属性
pattern = /abc/igm;
名称 | 描述 |
---|
pattern.ignoreCase | 返回一个布尔值,表示设置了修饰符 |
pattern.global | 返回一个布尔值,表示是否设置了g修饰符 |
pattern.multiline | 返回一个布尔值,表示是否设置了m修饰符 |
pattern.lastIndex | 返回一个数值,表示下一次开始搜索的位置 |
pattern.source | 返回正则表达式的字符串形式(不包括反斜杠)。只读 |
实例方法
名称 | 方法 |
---|
pattern.test(str) | 返回一个布尔值,表示当前模式是否能匹配参数字符串 |
pattern.exec(str) | 返回一个数组,或者返回null |
字符串实例方法
名称 | 方法 |
---|
str.match(pattern) | 返回一个数组,成员是所有匹配的子字符串。 |
str.search(pattern) | 按照给定的正则表达式进行搜索,返回一个整数,表示匹配开始的位置。 |
str.replace(search, replacement) | 按照给定的正则表达式进行替换,返回替换后的字符串。 |
str.split(separator) | 按照给定规则进行字符串分割,返回一个数组,包含分割后的各个成员。 |
$&:匹配的子字符串。
$`:匹配结果前面的文本。
$’:匹配结果后面的文本。
$n:匹配成功的第n组内容,n是从1开始的自然数。
$$:指代美元符号$。
'hello world'.replace(/(\w+)\s(\w+)/, '$2 $1')
// "world hello"
'abc'.replace('b', '[$`-$&-$\']')
// "a[a-b-c]c"
匹配规则
字符 | 描述 |
---|
. | 匹配除回车(\r)、换行(\n) 、行分隔符(\u2028)和段分隔符(\u2029)以外的所有字符 |
^ | 表示字符串的开始位置 |
$ | 表示字符串的结束位置 |
| | 在正则表达式中表示“或关系” |
\cX | 表示Ctrl-[X],其中的X是A-Z之中任一个英文字母,用来匹配控制字符。 |
[\b] | 匹配退格键(U+0008),不要与\b混淆。 |
\n | 匹配换行键。 |
\r | 匹配回车键。 |
\t | 匹配制表符 tab(U+0009)。 |
\v | 匹配垂直制表符(U+000B)。 |
\f | 匹配换页符(U+000C)。 |
\0 | 匹配null字符(U+0000)。 |
\xhh | 匹配一个以两位十六进制数(\x00-\xFF)表示的字符。 |
\uhhhh | 匹配一个以四位十六进制数(\u0000-\uFFFF)表示的 Unicode 字符。 |
[^] | 则表示除了字符类之中的字符,其他字符都可以匹配 |
(-) | 表示字符的连续范围 |
\d | 匹配0-9之间的任一数字,相当于[0-9]。 |
\D | 匹配所有0-9以外的字符,相当于[^0-9]。 |
\w | 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]。 |
\W | 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]。 |
\s | 匹配空格(包括换行符、制表符、空格符等),相等于[ \t\r\n\v\f]。 |
\S | 匹配非空格的字符,相当于[^ \t\r\n\v\f]。 |
\b | 匹配词的边界。 |
\B | 匹配非词边界,即在词的内部。 |
? | 问号表示某个模式出现0次或1次,等同于{0, 1}。 |
* | 星号表示某个模式出现0次或多次,等同于{0,}。 |
+ | 加号表示某个模式出现1次或多次,等同于{1,}。 |
需要反斜杠转义的,一共有12个字符:^、.、[、$、(、)、|、*、+、?、{和\
贪婪模式
名称 | 描述 |
---|
*?: | 表示某个模式出现0次或多次,匹配时采用非贪婪模式。 |
+?: | 表示某个模式出现1次或多次,匹配时采用非贪婪模式。 |