如果第二个参数再次是替换方法,则JavaScript替换不起作用

时间:2014-09-09 20:16:16

标签: javascript regex replace

我正在玩JavaScript字符串函数,并试图替换下面的字符串

Actual String : 'Microsoft' 
Replace with :  '\'$\'' is not defined

我尝试了一个简单的替换,如

"Microsoft".replace("Microsoft","\'$\' is not defined");

结果

' is not defined.

但我想保留$ sign,所以想写另一个函数来保存$并返回字符串;并且相同的字符串将是实际替换方法的第二个参数。

<!DOCTYPE html>
<html>
<body>



<p id="demo">Microsoft</p>
<p id="test"></p>

<button onclick="myFunction()">Try it</button>

<script>
function stripslashes(str) {
    str=str.replace("/\\'/g",'');
    return str;
}
function myFunction() {
    var newStr = stripslashes('\'$\' is not defined.');
    var res = "Microsoft".replace("Microsoft",newStr);
    document.getElementById("demo").innerHTML = res;
    document.getElementById("test").innerHTML = newStr;
}
</script>

</body>
</html>

但它不起作用,任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

$'String.replace的特殊标记:

  

$'插入匹配子字符串后面的字符串部分。

您需要使用$$插入文字$

"Microsoft".replace("Microsoft","'$$' is not defined");

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

答案 1 :(得分:0)

"Microsoft".replace("Microsoft","\\'$\\' is not defined");