RegExp 对象
参考资料:RegExp 对象
1. 实例方法
RegExp.prototype.test() - 返回布尔值,表示当前模式是否能匹配参数字符串。
RegExp.prototype.exec() - 返回匹配结果,如果匹配返回数组,否则返回null。
2. 语法规则
元字符
点字符
.
:一个点就是一个任意字符(部分字符除外回车、换行 、行分隔符\u2028
和段分隔符\u2029
)开始位置字符
^
/ 结束位置字符$
选择符
|
:表示或转义符\:十二个字符需要转义
^
、.
、[
、$
、(
、)
、|
、*
、+
、?
、{
和\
特殊字符
\cX
表示Ctrl-[X]
,其中的X
是A-Z之中任一个英文字母,用来匹配控制字符。[\b]
匹配退格键(U+0008),不要与\b
混淆。匹配换行键。
匹配回车键。
匹配制表符 tab(U+0009)。
\v
匹配垂直制表符(U+000B)。\f
匹配换页符(U+000C)。\0
匹配null
字符(U+0000)。\xhh
匹配一个以两位十六进制数(\x00
-\xFF
)表示的字符。\uhhhh
匹配一个以四位十六进制数(\u0000
-\uFFFF
)表示的 Unicode 字符。
字符类
脱字符
^
表示除了字符类之中的字符,其他字符都可以匹配,[^xyz]
表示除了x
、y
、z
之外都可以匹配,[^]
表示匹配一切字符。连字符
-
表示字符的连续范围,[a-c]、[0-9]、[A-Z]等,注意[1-31]表示1-3,不是1-31/[ab]/
等价于/a|b/
:检查一个字符串中是否包含 a或b/[a-z]/
:检查一个字符串那种是否包含任意小写字母/[A-Z]/
:任意大写字母/[A-z]/
:任意字母/[0-9]/
:任意数字/a[bde]c/
:检查一个字符串中是否包含 abc 或 adc 或 aec
简单来说就是[]
表示或,[^]
表示除了。
预定义模式
\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
匹配非词边界,即在词的内部。
重复类
{n}
表示恰好重复n
次{n,}
表示至少重复n
次{n,m}
表示重复不少于n
次,不多于m
次
量词符
?
问号表示某个模式出现0次或1次,等同于{0, 1}
。*
星号表示某个模式出现0次或多次,等同于{0,}
。+
加号表示某个模式出现1次或多次,等同于{1,}
。
修饰符(放在正则模式的最尾部 - /regex/修饰符)
g
修饰符,默认情况下,第一次匹配成功后,正则对象就停止向下匹配了。g
修饰符表示全局匹配(global),加上它以后,正则对象将匹配全部符合条件的结果,主要用于搜索和替换。i
修饰符,默认情况下,正则对象区分字母的大小写,加上i
修饰符以后表示忽略大小写。m
修饰符,默认情况下(即不加m
修饰符时),^
和$
匹配字符串的开始处和结尾处,加上m
修饰符以后,^
和$
还会匹配行首和行尾,即^
和$
会忽略末尾换行符()
全局匹配 g 慎用test()方法,当设置全局标志 /g
时,一旦字符串中还存在匹配,test() 方法都将返回 true,同时匹配成功后将把 lastIndex
属性的值设置为上次匹配成功结果之后的第一个字符所在的位置,下次匹配将从 lastIndex
指示的位置开始;匹配不成功时返回 false,同时将 lastIndex 属性的值重置为 0。
支持正则表达式的 String 对象的方法
方法 | 描述 |
---|---|
split() | 将字符串拆分成数组 |
search() | 搜索字符串中是否含有指定内容,返回索引 index |
match() | 根据正则表达式,从一个字符串中将符合条件的内容提取出来 |
replace() | 将字符串中的指定内容,替换为新的内容并返回 |
默认情况下,match()
方法只会找到第一个符合要求的内容,找到以后就停止检索,我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容,并以数组的形式返回。
最后更新于