7.4 String对象中的模式匹配方法

1.match()方法

match()方法使用正则表达式模式对字符串进行查找,并将包含查找的结果作为数组返回。

语法格式:

    stringObj.match(rgExp)

参数说明:

stringObj:必选项,表示需要查找的String对象或字符串文字。

rgExp:必选项。为包含正则表达式模式和可用标志的正则表达式对象变量名或字符串文字。

如果match()方法没有找到匹配,则返回null。如果找到匹配,则返回一个数组,并更新全局RegExp对象的属性,以反映匹配结果。

match()方法返回的数组有两个属性:input和index。input属性包含整个被查找的字符串。index属性包含了整个被查找字符串中符合匹配的子字符串的位置。

如果没有设置全局标志(g),数组的0元素包含整个匹配,而第1~n元素包含了匹配中曾出现过的任一个子匹配。这相当于没有设置全局标志的exec()方法。如果设置了全局标志,元素0~n中包含所有匹配。

例如,下面的例子通过match()方法来查询字符串,代码如下:

运行结果:

    boy

例如,下面用带g标志的match()方法返回多次出现的字符串“boy”,代码如下。

运行结果:

    boy,boy
2.search()方法

search()方法用于返回与正则表达式查找内容相匹配的第一个子字符串的位置。

语法格式:

    stringObj.search(rgExp)

参数说明:

stringObj:必选项。要在其上进行查找的String对象或字符串文字。

rgExp:必选项。包含正则表达式模式和可用标志的正则表达式对象。

说明

search()方法指明是否存在相应的匹配。如果找到一个匹配,search()方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回-1。

例如,下面应用search()方法查找内容匹配的第一个子字符串的位置,代码如下:

运行结果:

    12
3.replace()方法

replace()方法使用表达式模式对字符串进行搜索,并将搜索到的内容用指定字符串替换,最后返回一个字符串对象,包含了替换后的内容。

语法格式:

    replace(rgExp.replaceText)

replace()方法执行后,将更新RegExp对象中的有关静态属性,以反映匹配情况。该方法需要两个参数,其含义分别如下。

rgExp参数:搜索时要使用的表达式对象。如果是字符串,将不按正则表达式的方式进行模糊搜索,而是进行精确搜索。

replaceText参数:用于替换搜索内容的字符串,其中可以使用一些特殊字符组合来表示匹配变量。其中,$&是整个表达式模式在被搜索字符串中所匹配的字符串,$是表达式模式在被搜索字符串中所匹配的字符串左边的所有内容,$’是表达式模式在被搜索字符串中所匹配的字符串右边的所有内容,$$则是普通意义的“$”字符。

例如,应用replace()方法来替换字符串,代码如下:

运行结果:

    字符串ab12cd34ef56被转换为ab21cd43ef65
4.split()方法

split()方法可返回按照某种分割标识符将一个字符串拆分为若干个子字符串时所产生的子字符串数组。

语法格式:

    split([separator[,limit]])

separator是分割标识符参数,可以是多个字符或一个正则表达式,不作为返回的数组元素的一部分。参数limit用于限制返回元素的个数。

例如,下面的例子将实现应用split()方法分割字符串,代码如下:

运行结果:

    计算机语言种类:JavaScript  ASP  JSP  Java