JS正则表达式RegExp对象的属性和方法、修饰符、元字符的使用
一、基本语法
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'
上一篇: Tomcat部署与调优
下一篇: JS类的创建