深入replace

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

stringObject.replace(reg/str,str/replacement);

这里主要讲一下replacement的用法,

对replace用法做到收放自如主要难点就在replacement上了,

先看个例子1:

(function(){

    var str="Aa1 Ba1 Ca1";

    str.replace(/[a][1]/g,function(){return "--"});

})()

结果是A-- B-- C--

这是最基础的replacement的用法,把a1替换成了--;

再看个例子2:

(function(){

     var str="Aa1 Ba1 Ca1";

     str.replace(/[a][1]/g,function(x){

       return x+'--';

});     

})();

结果是:Aa1-- Ba1-- Ca1--

发现点了什么吧,replacement这里的函数是对匹配到的元素进行加工的;记住正则里面要用全局搜索标示符g;

再看个例子3(前面做的练习都是为了写这个方法):

function reg(a){
var pattern=/[{][d][}]/g,

args=Array.prototype.slice.call(arguments),
str=args[0],
arr=args.slice(1),
flag=-1;

alert(args.length)

return str.replace(pattern,function(q){
flag++;
return q.replace(q,arr[flag]);
});
}

reg("hello {1},my name is {2}","world","lu")

这个例子不做解释了,感兴趣的看看它在做什么吧,对replace的理解有帮助的

原文地址:https://www.cnblogs.com/mrben/p/3988010.html