String类型定义了几个用于在字符串中匹配模式的方法。第一个方法就是match(),在字符串上调用这个方法,本质上与调用RegExp的exec()方法相同。match()方法只接受一个参数,要么是—个正则表达式,要么是一个RegExp对象。来看下面的例子:
var text="cat, bat, sat, fat";
var pattern=/.at/;
//与pattern.exec (text)相同
var matches=text.match(pattern);
alert(matches.index); //0
alert (matches[O]); //"cat"
alert (pattern.lastlndex); //o
本例中的match()方法返回了一个数组;如果是调用RegExp对象的exec()方法并传递本例中的字符串作为参数,那么也会得到与此相同的数组:数组的第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着与正则表达式中的捕获组匹配的字符串。
另一个用于查找模式的方法是search(),这个方法的唯一参数与match()方法的参数相同:由字符串或RegExp对象指定的一个正则表达式。search()方法返回字符串中第一个匹配项的索引;南昌网站建设公司技术人员提醒,如果没有找到匹配项,则返回-1。而且,search()方法始终是从字符串开头向后查找模式。看下面的例子:
var text = "cat, bat, sat, fat";
var pos = text.search(/at/);
alert(pos); //1
这个例子中的search()方法返回1,即"at"在字符串中第一次出现的位置。
为了简化替换子字符串的操作,ECMAScript提供了replace型多法。这个方法接受两个参数:第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么只会替换第一个子字符串。要想替换换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局(g)标志,如下所示:
var text="cat, bat, sat, fat";
var result = text.replace("at","ond");
alert(result); //"cond,bat,sat,fat"
result = text.replace(/at/g,"ond");
alert(result) // "Cond,bond,aond,fond"
在这个例子中,首先传人replace()方法的是字符串"at"和替换用的字符串"ond"。替换的结果是把"cat"变成了"cond",但字符串中的其他字符并没有受到影响。然后,通过将第一个参数修改为带有全局标志的正则表达式,就将全部"at"都替换成了"ond"。
本资料仅限南昌网络公司百恒网络技术部内部人员交流使用,方便内部技术人员学习交流,请勿作其他用途.谢谢支持! 南昌网站建设第一品牌,专业专注于南昌网站设计|南昌做网站,为用户提供高品质的网络产品和优质的服务是我们始终追求的目标!