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

上面的语句只替换了第一次出现的单引号。可能是因为我在那之后立即进行了提交,并且 javascript 在继续下一个语句之前没有等待前一个语句完成?

4

5 回答 5

3

尝试使用正则表达式/g

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

如下更改您的代码,

document.getElementById("Message").innerHTML = 
                  document.getElementById("Message")
                          .innerHTML
                          .replace(/'/g,"%%");
于 2012-09-26T15:40:04.187 回答
0

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

请参阅此 SO 链接如何使用 JavaScript 替换字符串中的所有点

于 2012-09-26T15:40:01.660 回答
0

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

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

jsfiddle

于 2012-09-26T15:40:14.010 回答
0

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

这里

于 2012-09-26T15:41:27.467 回答
0

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

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

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

于 2012-09-26T15:42:00.500 回答