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>

那就用你的那个变量构造一个正则表达式不就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一个正则表达式对象
参考技术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:

PatternInserts
$$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.
$nWhere 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

About Sodino

以上是关于javascript 中 replace 对变量进行全局替换的主要内容,如果未能解决你的问题,请参考以下文章

javaScript使用技巧

JS replace()方法替换变量(可以对变量进行全文替换)

Javascript Regex:如何将变量放入正则表达式中? [复制]

引用 -replace & 变量

JavaScript中trim 方法实现

javascript 最权威的知识点总结