这样看就有思路了。现在这个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.
}
.
分页: [1] [2] [3] [4]
- 上一篇:详细介绍javascript replace函数
- 下一篇:网页布局几步走