JavaScript(js)的replace问题的解决

我是前端的门外汉,js我用得比较少。今天意外发现js自带的replace “居然”只替换1处,而其它的许多许多语言都是替换全部的。
你可能会说,切,我早就知道。高手请绕道。
你可能会说,用js的正则就可以解决这个问题。对,没错,但敝人有“不轻易使用正则”的癖好。
于是想出一个办法,既然js你只帮我做一次,我就循环让你做多次,代码别人都写好了:
function ReplaceAll(str, sptr, sptr1){
   while (str.indexOf(sptr) >= 0){
      str = str.replace(sptr, sptr1);
   }
   return str;
}

好高兴,找到了解决办法。但是贴这段代码的上面写着“我觉得不靠谱”,下面又举了一个例子: ReplaceAll(a, 'b', 'bc') 会死循环。我汗!不用运行我都能知道这样传肯定会死循环。失望。后来,我自己想了一个办法:

function replaceAll(str, sptr, sptr1) {
    var ps = str.split(sptr);
    var s2 = ps.join(sptr1);
    return s2;
}

贴上来供各位高手看看这种办法是否有缺陷。

我就当作是写备忘录。

posted @ 2015-06-10 17:10  BillySir  阅读(436)  评论(0编辑  收藏  举报