用javascript实现php中的str_replace


先前要写一段js脚本,将html中的指定字符替换成其它字符,如果直接用js的str.replace(),只会替换第一个出现的字符,于是写了比较粗糙能替换全部指定字符的版本:


function strReplace(search, replace, str) {
 var tmp = str;
 do {
  str = tmp;
  tmp = str.replace(search, replace);
 }while (str != tmp);
 return str;
}

这个脚本看上去不是太爽,效率估计很勉强,于是google了一下,原来有更好的版本:


//俺主要是为了适应php的str_replace()啊
function strReplace(search, replace, str) {
 var regex = new RegExp(search, "g");
 return str.replace(regex, replace);
}

或者oo一点的写法

String.prototype.replaceAll = function(search, replace){
 var regex = new RegExp(search, "g");
 return this.replace(regex, replace);
}

测试一下:

var str = 'cccaaacccaaacccaaacccaaacccaaa';
alert(str.replaceAll('aaa', 'testIt'));

呵呵,一切ok


2 responses to “用javascript实现php中的str_replace”

  1. js 的 str.replace() 的第一个参数要写成正则,就是替换所有的了。比如

    "aabbccaa".replace(/aa/ig, "AA");

Leave a Reply

Your email address will not be published.