javascript替换函数仅替换第一次出现

时间:2012-09-26 15:38:38

标签: javascript

document.getElementById("Message").innerHTML=document.getElementById("Message").innerHTML.replace("'","%%");

上述声明仅替换单引号的第一次出现。可能是因为我之后做了提交,并且javascript不会等到之前的语句完成后再转到下一个语句吗?

5 个答案:

答案 0 :(得分:3)

尝试使用正则表达式/g

.replace(/'/g,"%%")

更改您的代码,如下所示

document.getElementById("Message").innerHTML = 
                  document.getElementById("Message")
                          .innerHTML
                          .replace(/'/g,"%%");

答案 1 :(得分:0)

要在javascript中全局替换,您需要将/ g添加到替换字符串。

请参阅此SO链接How to replace all dots in a string using JavaScript

答案 2 :(得分:0)

你应该在替换中使用正则表达式。

document.getElementById("Message").innerHTML=document.getElementById("Message").innerHTML.replace(/'/g,"%%");

jsfiddle

答案 3 :(得分:0)

在replace()参数中使用Global (g)标志。

请参阅here

答案 4 :(得分:0)

您应该使用正则表达式和/g(全局)标志。这将取代所有出现次数:

document.getElementById("Message").innerHTML=
    document.getElementById("Message").innerHTML.replace(/'/g,"%%");

http://www.w3schools.com/jsref/jsref_replace.asp