在JavaScript中的正则表达式介绍了JavaScript中正则表达式的语法,本文同样是JavaScript权威指南的笔记,介绍JavaScript中正则表达式的一些方法。
-
用于模式匹配的String方法
- search()方法
参数是一个正则表达式,返回第一个与之匹配的字串的起始位置,如果找不到匹配的字串,它将返回-1。比如:
‘JavaScript‘.search(/script/i)
返回4。同时,search方法不支持全局搜索,因为它会忽略正则表达式中的修饰符g。
- replace()方法
执行检索和替换的功能。第一个参数是正则表达式,第二个参数是要进行替换的字符串。
如果指定了修饰符g,则会替换所有的匹配项,否则只替换第一个。
另外,上一篇文章中提到,正则表达式使用圆括号进行分组,同时这些括起来的内容从左到右是有索引编号的。如果在替换字符串中出现了$加数字,那么replace()将用与指定的字表达式相匹配的文本来替换这两个字符。比如:
-
var quote = /"([^"]*)"/g; ‘abc"xxx"def‘.replace(quote, ‘“$1”‘);//abc“xxx”def
- 此外,replace第二个参数还可以是函数。例如:
text.replace(/\b\w+\b/g, function(word) {
return word.substring(0,1).toUpperCase + word.substring(1);
})
- match()方法
唯一参数就是正则表达式,返回一个由匹配项组成的数组。若设置了g则返回所有匹配项组成的数组。
另外,如果没有修饰符g,返回的数组中第一项是匹配的字符串,后面的项是正则表达式中圆括号括起来的项。
比如:
-
var url = /(\w+):\/\/([\w.]+)\/(\S*)/; var text = ‘Visit my blog http://www.example.com/~david‘; //[‘http://www.example.com/~david‘, ‘http‘, ‘www.example.com‘, ‘~david‘]
- split()方法
split的参数也支持正则表达式。
- search()方法
- RegExp对象
- RegExp的五个属性
source:正则表达式的文本
global:是否有修饰符g
ignoreCase:是否有修饰符i
multiline:是否有修饰符multiline
lastIndex:如果有修饰符g,这个属性存储下一次开始检索的位置。 - 两个方法
exec()方法,与match类似,但总是返回一个结果,并返回lastIndex属性的信息。从而可以反复调用exec方法获得所有匹配。
test()方法,比exec更简单一些,如果包含匹配结果则返回true。
- RegExp的五个属性
时间: 2024-10-09 17:51:19