javascript 中 replace 对变量进行全局替换

请教高手,如果replace的第一个参数不是正则表达式,而是一个变量,那么该怎样做才能够进行全局替换呢?
最终效果是输入a则替换全部的三个a为红色,输入b则替换三个b为红色,输入c同上。即要替换的字符由用户输入。
请指教!谢谢

代码如下:

<input id="th" value="a">
<button id="btn">替换</button>

<script>
document.getElementById("btn").onclick=function(){
var str="abcabcabc";
var th=document.getElementById("th").value;
document.write(str.replace(th,"<font color=red>"+th+"</font>"));
}
</script>

那就用你的那个变量构造一个正则表达式不就OK了
看下我下面的代码
<input id="th" value="a">
<button id="btn">替换</button>
<div id='test'></div>
<script>
document.getElementById("btn").onclick=function(){
var str="abcabcabc";
var th=document.getElementById("th").value;
document.getElementById("test").innerHTML = str.replace(new RegExp(th,"g"),"<font color=red>"+th+"</font>");
}
</script>

关键点:new RegExp()
这样可以new一个正则表达式对象
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-08
自己写一个函数

function replaceAll(sTarget, sSearch, sReplace ){
return sTarget.split(sSearch).join(sReplace);
}

//使用方法
alert(replaceAll('A b A c A', 'A', 'X'));

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网