js.replace,js replace replaceall,JS的replace方法详细介绍
replace()方法的参数替换可以是函数而不是字符串。在这种情况下,每个匹配都调用这个函数,它返回的字符串将被用作替换文本。
replace()方法的参数替换可以是函数而不是字符串。在这种情况下,每个匹配都调用这个函数,它返回的字符串将被用作替换文本。这个函数的第一个参数是一个匹配模式的字符串。接下来的参数是匹配模式中子表达式的字符串,可以有0个或更多这样的参数。下一个参数是一个整数,它声明匹配出现在stringObject中的位置。最后一个参数是stringObject本身。下面展示了javascript正则表达式的几种替换方式,其中一些我们在别处很少见到,比如第二、第三方方法。//下面的例子用来获取url的两个参数并返回urlRewrite之前的真实Url复制代码如下:var reg=new regexp('(http://www.qidian.com/bookreader/)(\ \ d),(\ \ d)。aspx ',' gmi ');var URL=' http://www . qidian . com/book reader/1017141,20361055 . aspx ';//方法1,最简单常用的方法var rep=url.replace (reg,' $1 showbook.aspx?bookId=$ 2 chapterid=$ 3’);警报(代表);//方法二,回调函数varrep2=url.replace (reg,function (m,p1,p2,p3) {returnp1' showbook.aspx?bookId=' P3 ' chapterId=' P3 });alert(rep 2);//模式3,回调函数varrep3=url.replace (reg,function(){ varargs=arguments;return args[1] 'ShowBook.aspx?bookId=' args[2]' chapterId=' args[3];});alert(re P3);//方法4//方法4和方法3很像。除了返回被替换的字符串,还可以单独获取参数副本代码如下:var bookIdvar chapterIdfunction capText(){ var args=arguments;bookId=args[2];chapterId=args[3];return args[1] 'ShowBook.aspx?bookId=' args[2]' chapterId=' args[3];} var rep4=url.replace(reg,capText);alert(re P4);alert(bookId);alert(chapterId);//除了用replace方法得到正则表达式的分组,还可以用test,exec方法得到分组,只是方法不同。复制代码如下:varreg 2=new regexp('(3358 www . qidian . com/book reader/)(\ \ d),(\ \ d)。aspx ',' GMM。var m=reg 2 . exec(' http://www . qidian . com/book reader/1017141,20361055 . aspx ');var s=“”;//获取所有块复制代码如下:for(I=0;i m.lengthI){ s=s m[I]' \ n ';}个警报;bookId=m[2];chapterId=m[3];alert(bookId);alert(chapterId);//使用测试方法获取块复制代码如下:var reg 3=new regexp('(http://www.qidian.com/bookreader/)(\ \ d),(\ \ d)。aspx ',' GMI ');reg 3 . test(' http://www . qidian . com/book reader/1017141,20361055 . aspx ');//获取如下三个块复制代码:alert(RegExp。$1);alert(RegExp。$2);alert(RegExp。$3);
var str=' www . Baidu . com ';//str.format ('OK ',' Q ')
str . replace(new RegExp((\ \。)(白)都',' g '),函数(){
for(var I=0;I参数.长度;I){ document . write(arguments[I]' br/');} document . write('-br/');});
两个例子(证明替换传入正则参数和字符传递参数的结果不同):alert ('123 '。replace ('1 ',function(){ varun;返回un;}));//未定义的23警报(' 123 '。replace (new regexp ('1 ')),function(){ varun;返回un;}));//弹出23
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。