JavaScript RegExp 参考手册

RegExp 对象

正则表达式是一种字符模式。

该模式用于对文本进行模式匹配的“搜索和替换”功能。

在 JavaScript 中,RegExp 对象是一种拥有属性和方法的模式。

语法

/pattern/modifier(s);

实例

let pattern = /(www.sou-xun.com)/i;

亲自试一试

例子解释:

(www.sou-xun.com)要搜索的模式
/(www.sou-xun.com)/正则表达式
/(www.sou-xun.com)/i不区分大小写的正则表达式

如需有关正则表达式的知识,请阅读我们的 JavaScript RegExp 教程

修饰符

修饰符用于执行不区分大小写和全局的搜索:

修饰符描述
g执行全局匹配(查找所有匹配而不是在第一个匹配后停止)。
i执行不区分大小写的匹配。
m执行多行匹配。

方括号

方括号用于查找某个范围内的字符:

表达式描述
[abc]查找括号之间的任何字符。
[^abc]查找任何不在方括号之间的字符。
[0-9]查找任何从 0 至 9 的数字。
[^0-9]查找任何不在括号内的字符(任何非数字)。
(x|y)查找任何指定的选项。

元字符

元字符是具有特殊含义的字符:

元字符描述
.查找单个字符,除了换行符或行终止符。
\w查找单词字符。
\W查找非单词字符。
\d查找数字。
\D查找非数字字符。
\s查找空白字符。
\S查找非空白字符。
\b在单词的开头/结尾查找匹配项,开头如下:\bHI,结尾如下:HI\b。
\B查找匹配项,但不在单词的开头/结尾处。
\0查找 NULL 字符。
\n查找换行符。
\f查找换页符。
\r查找回车符。
\t查找制表符。
\v查找垂直制表符。
\xxx查找以八进制数 xxx 规定的字符。
\xdd查找以十六进制数 dd 规定的字符。
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

量词

量词描述
n+匹配任何包含至少一个 n 的字符串。
n*匹配任何包含零个或多个 n 的字符串。
n?匹配任何包含零个或一个 n 的字符串。
n{X}匹配包含 X 个 n 的序列的字符串。
n{X,Y}匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,}匹配包含至少 X 个 n 的序列的字符串。
n$匹配任何以 n 结尾的字符串。
^n匹配任何以 n 开头的字符串。
?=n匹配任何其后紧接指定字符串 n 的字符串。
?!n匹配任何其后没有紧接指定字符串 n 的字符串。

RegExp 对象属性

属性描述
constructor返回创建 RegExp 对象原型的函数。
global检查是否设置了 "g" 修饰符。
ignoreCase检查是否设置了 "i" 修饰符。
lastIndex规定开始下一个匹配的索引。
multiline检查是否设置了 "m" 修饰符。
source返回 RegExp 模式的文本。

RegExp 对象方法

方法描述
compile()在 1.5 版中已弃用。编译正则表达式。
exec()测试字符串中的匹配项。返回第一个匹配项。
test()测试字符串中的匹配项。返回 true 或 false。
toString()返回正则表达式的字符串值。

RegExp 对象描述

RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

直接量语法

/pattern/attributes

创建 RegExp 对象的语法:

new RegExp(pattern, attributes);

参数

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

返回值

一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。

如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。

抛出

SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。

TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。

浏览器支持

/regexp/ 是 ECMAScript1 (ES1) 的特性。

所有浏览器都完全支持 ES1 (JavaScript 1997):

ChromeIEEdgeFirefoxSafariOpera
ChromeIEEdgeFirefoxSafariOpera
支持支持支持支持支持支持

支持正则表达式的 String 对象的方法

方法描述
search检索与正则表达式相匹配的值。
match找到一个或多个正则表达式的匹配。
replace替换与正则表达式匹配的子串。
split把字符串分割为字符串数组。