javascript 中 replace 对变量进行全局替换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
看下我下面的代码
<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一个正则表达式对象 参考技术A 自己写一个函数
function replaceAll(sTarget, sSearch, sReplace )
return sTarget.split(sSearch).join(sReplace);
//使用方法
alert(replaceAll('A b A c A', 'A', 'X'));
JavaScript正则表达式--String.replace()变量替换的一点笔记
1 2 3 4 | var re = /(\\w+)\\s(\\w+)/; var str = 'John Smith'; var newstr = str.replace(re, '$2, $1'); console.log(newstr); // Smith, John |
$1
$2
是指被括号()
包起来的\\w+
。
即当要使用变量替换时,$n
指第n个用()
包起来的表达式的值。
要用()
包起来呀…‘(>﹏<)′ ‘(>﹏<)′
Specifying a string as a parameter
The replacement string can include the following special replacement patterns:
Pattern | Inserts |
---|---|
$$ | Inserts a “$”. |
$& | Inserts the matched substring. |
$` | Inserts the portion of the string that precedes the matched substring. |
$’ | Inserts the portion of the string that follows the matched substring. |
$n | Where n is a non-negative integer lesser than 100, inserts the nth parenthesized submatch string, provided the first argument was a RegExp object. |
Switching words in a string
以上是关于javascript 中 replace 对变量进行全局替换的主要内容,如果未能解决你的问题,请参考以下文章
JS replace()方法替换变量(可以对变量进行全文替换)