用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
作者: Volcano 发表于March 10, 2006 at 10:07 am
宇义 于 2006-03-10 @ 12:26:03 留言 :
js 的 str.replace() 的第一个参数要写成正则,就是替换所有的了。比如
volcano 于 2006-03-10 @ 12:47:07 留言 :
我也是到后来才弄清这个,只是写成这样更符合以前在php中的使用习惯:)