请教高手,如果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一个正则表达式对象
看下我下面的代码
<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'));
function replaceAll(sTarget, sSearch, sReplace ){
return sTarget.split(sSearch).join(sReplace);
}
//使用方法
alert(replaceAll('A b A c A', 'A', 'X'));