用于模式匹配的String方法

时间:2024-09-26 17:03:32

String支持四种使用正则表达式的方法。

1.search()返回第一个与之匹配的子串的起始位置,找不到返回-1。search()参数是一个正则表达式,如果参数不是正则表达式,则会先通过RegExp构造函数讲将它转换成正则表达式。该方法不支持全局检索因此忽略修饰符g。例如下面的调用返回值为4:

"javascript".search(/script/i);

2.replace()用以执行检索和替换操作。参数第一个是正则,第二个是要进行替换的字符串或者函数。如果第一个参数是字符串不是正则,则replace()将直接搜索这个字符串而不会先通过RegExp()将它转换为正则表达式。例如将文本所有javascript(不区分大小写)统一替换为JavaScript:

text.replace(/javascript/g,"JavaScript");再例如将一个字符串中的英文引号替换为中文半角引号:

var quote=/"([^"]*)"/g;

text.replace(quote,‘"$1"’);

3.match()返回一个由匹配结果组成的数组。它的唯一参数是一个正则表达式(或者通过RegExp()构造函数将其转换为正则表达式)。如果这个正则表达式没有设置修饰符g,match()只检索第一个匹配,但是这样也会返回一个数组。这种情况下数组第一个元素是匹配的字符串,余下的则是正则表达式中用括号括起来的子表达式。

4.split()返回一个由它的字符串拆分为一个子串组成的数组。例如

"123,456,789".split(",");//["123","456","789"]