JavaScript 正则表达式(RegExp) 对象

正则表达式是形成搜索模式的一系列字符。

在文本中搜索数据时,可以使用此搜索模式来描述要搜索的内容。

正则表达式可以是单个字符,也可以是更复杂的模式。

RegExp对象

正则表达式是描述字符模式的对象。

RegExp 构造函数创建用于与模式匹配文本正则表达式对象。

Syntax:
new RegExp(pattern, modifiers);

或简单地

/pattern/modifiers;
var regex = /nhooo/g

示例说明:

  • nhooo是一种模式(用于搜索)

  • g是修饰符(执行全局匹配)

您可以在我们的JavaScript RegExp教程中了解有关正则表达式的更多信息。

修饰符

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

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

括号

方括号用于查找一系列字符:

表达描述
[abc]匹配在方括号中的任意字符
[^abc]匹配不在括号中的任意字符
[0-9]匹配方括号之间的任意数字
[^0-9]匹配不在括号之间的任何字符(任何非数字字符)
(x|y)匹配指定的任何代替方案

元字符

元字符只是一个字母字符,后跟一个反斜杠,以使组合具有特殊含义:

元字符描述
.匹配除换行符 \n 之外的任何单字符。
\w匹配字母和数字 [0-9a-zA-Z]
\W匹配非字母和数字
\d匹配数字[0-9]
\D匹配非数字[^0-9]
\s匹配空格 换行和缩进符
\S匹配非空格 换行和缩进符
\b在单词的开头/结尾找到匹配项
\B匹配不在单词开头/结尾处的匹配项
\0匹配一个NUL字符
\n匹配换行符
\f匹配换页符
\r匹配回车符
\t匹配制表符
\v匹配垂直制表符
\xxx匹配由八进制数字xxx指定的字符
\xdd匹配由十六进制数字dd指定的字符
\uxxxx匹配由十六进制数字xxxx指定的Unicode字符

量词

方括号字符序列和单个字符的频率或位置可以用特殊字符表示:

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

正则表达式对象属性

下表列出了RegExp对象的属性:

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

正则表达式对象方法

下表列出了RegExp对象的方法:

方法描述
exec()搜索其字符串参数中的匹配项
test()测试其字符串参数是否匹配并返回布尔值
toString()返回表示指定对象的字符串