RegExp的静态属性
RegExp支持一些静态属性。在使用正则表达式对象对字符串执行搜索的过程中,一旦匹配成功,这些静态属性的值将自动更新,以反映匹配的结果。
RegExp的静态属性
静态属性 | 描述 |
---|---|
index | 是当前表达式模式首次匹配内容的开始位置,从0开始计数。其初始值为-1 。每次成功匹配时,其属性值都会随之改变。 |
input | 返回当前所作用的字符串,初始值为空字符串“” |
lastMatch | 是当前表达式模式的最后一个匹配字符串,其初始值为空字符串“”。每次成功匹配时,其属性值都会随之改变 |
lastParen | 如果表达式模式中有括起来的子匹配,是当前表达式模式中最后的子匹配所匹配到的子字符串。其初始值为空字符串“”。每次匹配成功时,其属性都会随之改变 |
leftContext | 是当前表达式模式最后一个匹配字符串左边的所有内容。初始值为空字符串“”。每次成功匹配时,其属性值都会随之改变 |
rightContext | 是当前表达式模式最后一个匹配字符串右边的所有内容。初始值为空字符串“”。每次成功匹配时,其属性值都会随之改变 |
$1…$9属性 | 如果表达式模式中有括起来的子匹配,$1…$9属性值分贝时第一个到第9个子匹配所捕获到的内容。如果有超过9个以上的子匹配,$1…$9属性分别对应最后的9个子匹配。在一个表达式模式中,可以指定任意多个带括号的子匹配,但RegExp对象只能存储最后的9个子匹配的结果。在RegExp实例对象exec()方法所返回的数组中,可以获得所有圆括号内的子匹配结果 |
字符串对象中与正则相关的方法:
字符串对象中有几个方法都与正则表达式有密切的关系
方法 | 描述 |
---|---|
match() | 找到一个或多个正则表达式的匹配 |
replace() | 替换正则表达式匹配的子串 |
search() | 检索与正则表达式相匹配的值 |
split() | 把字符串分割为字符串数组 |
-
match()方法
用于按匹配模式从字符串中提取子字符串,得到子字符串的数组。<html> <head> <script> var str="{12,34},{56,78},{90,12}"; var re=/{\d+,\d+}/gi; var arr=str.match(re); document.write("按匹配模式从字符串中提取获得的子字符串数组包含"+arr.length+"个元素<br />"); for(var i=0;i<arr.length;i++) { document.write(arr[i]+"<br />"); } </script> </head> </html>
运行结果:
按匹配模式从字符串中提取获得的子字符串数组包含3个元素
{12,34}
{56,78}
{90,12}
-
2.search()方法
用于按匹配模式在字符串中搜索,返回第一个匹配的位置。类似于indexOf( )方法。
<html> <head> <script> var str="这是一本javascript的教材"; var re=/JavaScript/i; var index=str.search(re); document.write(index);//输出“4” </script> </head> </html>
-
replace()方法
用于将字符串中满足匹配模式的子字符串替换为另一个字符串。
<html> <head> <script> var str="下一行代码创建了一个RegExp对象。"; var re=new RegExp("regExp","i"); var result=str.replace(re,"正则表达式"); document.write(result); </script> </head> </html>
运行结果:
下一行代码创建了一个正则表达式对象。
-
split()方法
用于按匹配模式分割字符串,返回子字符串的数组。
<html> <head> <script> var str="123,234,345,456"; var re=/\,/; var arr=str.split(re); for(var i=0;i<arr.length;i++){ document.write(arr[i]+"<br/>"); } </script> </head> </html>
运行结果:
123
234
345
456