欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS正则表达式RegExp对象的属性和方法、修饰符、元字符的使用

程序员文章站 2024-02-20 20:16:16
...

一、基本语法
RegExp表示正则表达式对象,这个表达式对象要比使用字面量还要强大,这也是对正则表达式操作的一个封装,封装成方法后更容易使用。
使用RegExp对象可以更加灵活的操作正则表达式,基本语法如下:

new RegExp(正则表达式,修饰符);

基本语法说明如下:

(1). 第一个参数是“正则表达式”,是一个字符串参数,是一个正则表达式,是匹配模式,主要用于该模子去匹配字符串。

(2). 第二个参数“修饰符”是一个可选的字符串,其值有 “g”、“i” 和 “m”,分别用于指定全局匹配、区分大小写匹配和多行匹配。在ECMAScript没有标准化时,是不支持m标志的。

(3). 如果第一个参数是字面量形式的正则表达式(如/a/i),不是字符串,则第2个参数不能使用。

(4). 如果第二个参数是字符串的模式,则第2个参数要使用修饰符标志,如g、m和i。

二、修饰符
在JavaScript中,不管是使用字面量表示正则表达式,还是使用RegExp对象,其修饰符标志都是一样的。都是共有3个,分别如下:

(1). 正则表达式i修饰符标志,表示不区分大小写匹配,A与a都是一样的匹配。

(2). 正则表达式g修饰符标志,表示按全局匹配,它会在整个字符串中从第1个字符查找到最后1个字符,而不是找到第1个字符就停止了。

(3). 正则表达式m修饰符标志,表示按多行匹配,可以在换行后的行上进行匹配。

注意:在字符串对象中,search()方法是不支持g修饰符标志的,而replace()和match()方法支持g修饰符标志。

三、方括号
这里,我们将与方括号相关的匹配模式列出来,供大家在使用正则表达式匹配时使用,主要用于查找某个范围内的字符。

(1). [abc]:表示用于匹配a或b或c。只要是[]之间的字符都会被匹配。

(2). [^abc]:表示对[abc]取反,只要不在[]中间的字符,都会匹配上。

(3). [0-9]:表示匹配0-9之间的任意一个整数值。

(4). [a-z]:表示匹配a-z之间的所有小写字母。

(5). [A-Z]:表示匹配A-Z之间的所在大写字母。

(6). [A-z]:表示匹配大写的A到小写的z之间的字母。

(7). [a01|a02|a03]:表示匹配[]中间的任何项。

四、元字符
在JavaScript中,正则表达式中有一些特殊的字符,称为元字符,使用元字符可以起到一个以小博大的作用。

元字符也可以理解为通配符,一个字符可以表达更多的字符。

(1). 元字符小圆点(.)表示用于匹配单个的字符,换行符和结束符除外。

(2). 元字符\w表示用于匹配单词,\W表示匹配非单词。

(3). 元字符\d表示匹配数字,\D表示匹配非数字。

(4). 元字符\s表示匹配空白的字符,\S表示匹配非空白字符。

(5). 元字符\b表示查找单词的边界。\B表示查找非单词边界。

五、量词
在JavaScript中,除了提供了强大的元字符之外,还提供了一些量词,量词的功能更加强大,匹配功能更多复杂。

这里介绍几个强大的常用的量词。

(1). n+表示能够匹配上至少包含1个n的字符串。如go+,可以匹配的字符串有:go、goo、gooo等。

(2). n表示能够匹配上包含0个或多个n的字符串。如go,可以匹配的字符串有:g、go、goo、gooo等。

(3). n?表示能够匹配上包含0个或1个n的字符串。如go?,只能匹配g或go字符串。

(4). n{x}表示能够匹配上包含x个包含n的字符串。如n{2},表示匹配包含了nn的字符串。

(5). n(x,y)表示能够匹配上包含x到y个n的字符串。如n(2,5),表示匹配包含了nn,nnn,nnnn,nnnnn等的字符串。

(6). n(x,)表示能够匹配上至少包含x个n的字符串。如n(2,),表示匹配上2个以上n的字符串。

六、与正则相关的方法和属性
一、 与RegExp对象相关的属性:

(1). Global:表示使用修饰符g标志执行全局匹配。

(2). ignoreCase:表示使用修饰符i标志执行不区分大小匹配。

(3). lastIndex:表示从哪个位置开始匹配。

(4). Multiline:表示执行多行匹配。

(5). Source:表示可以获取正则表达式本身。

二、 与字符串相关的方法:

(1). Search():表示能够对正则表达式匹配上的结果。

(2). Match():表示获取所有的匹配项。

(3). Replace():表示将能匹配上的字符串替换为别的字符串。

(4). Split():表示将匹配上的字符串使用数组存储。

注意点:JavaScript中的"是"的意思。如:

"m=%d "

表示:

'm=%d'