javascript中replace()函数用法小谈
2010-09-14 13:05:45 来源:WEB开发网$nn 第 nn 个捕获到的子匹配,这里 nn 为从 01 到 99 的十进制二位数。(JScript 5.5 或更高版本)
这样看就有思路了。现在这个re = /(S+)(s+)(S+)/g;有3个括号,也就是相当于3个匹配。而这个$1、$2、$3就分别代表这3个匹配。
回到这个例子当中。re = /(S+)(s+)(S+)/g就来匹配一个非空串+一个空串+一个非空串,也就是会非别匹配"The rain"、"in Spain"、
"falls mainly"、"in the"。这些都会被匹配。
实际上是这个函数一共找到了4个符合条件的字符串。第一个是"The rain",这个字符串的3部分"The"、" "(空格)、"rain"分别对应$1$2$3这3个子匹配。 现在再看这句话就简单了r = ss.replace(re, "$3$2$1"),它的意思就是把找到的每个串的这3个子匹配的顺序调整。第一个就是"rain The"。同理,后面的几个字符串都这样颠倒一下。最终结果就是"rain The Spain in mainly falls the in plain."。不难理解吧。
当然喽,你不一定对这3个正则都要处理的。比如我现在想把这个字符串中的所有空格后面加"_",要怎么写呢?这样来写,
re = /(s+)/g;
r = ss.replace(re, "$1_");
这样就可以了,但是发觉这种用法还不如第一种用的多。不要紧,我们主要是用来给第三种用法作铺垫。现在我想把空格去掉,怎么做?
exp3:
function ReplaceDemo()...{
var r, re; //Declare variables.
var ss = "The rain in Spain falls mainly in the plain.";
re = /(s+)/g; //Create regular expression pattern.
r = ss.replace(re, function()...{return "";}); //Swap each pair of words.
return(r); //Return resulting string.
}
Tags:javascript replace 函数
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接