十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

字符串的模式匹配match() search() replace()方法使用讲解

百恒网络 2012-09-25 1717

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"。

本资料仅限南昌网络公司百恒网络技术部内部人员交流使用,方便内部技术人员学习交流,请勿作其他用途.谢谢支持! 南昌网站建设第一品牌,专业专注于南昌网站设计|南昌做网站,为用户提供高品质的网络产品和优质的服务是我们始终追求的目标!


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×