Javascript Can';t使用正则表达式替换()

Javascript Can';t使用正则表达式替换(),javascript,regex,Javascript,Regex,我想用“e”替换所有“w”: 但它不能取代任何东西!早些时候,我尝试使用replace(“w”,“e”),但它只替换了第一个“w”。那么,该怎么办?如果您真的想修改元素的内容(innerHTML),您应该使用以下方法: var el = document.getElementById('hash'); el.innerHTML = el.innerHTML.replace(/w/g, 'e'); 。。。由于replace(与任何其他字符串方法一样)不会就地更改已操作的字符串,而是创建一个新字符

我想用“e”替换所有“w”:


但它不能取代任何东西!早些时候,我尝试使用replace(“w”,“e”),但它只替换了第一个“w”。
那么,该怎么办?

如果您真的想修改元素的内容(
innerHTML
),您应该使用以下方法:

var el = document.getElementById('hash');
el.innerHTML = el.innerHTML.replace(/w/g, 'e');
。。。由于
replace
(与任何其他字符串方法一样)不会就地更改已操作的字符串,而是创建一个新字符串(替换操作的结果)并返回它

如果您只想创建元素内容的新的转换版本,唯一的更改应该是使用适当的regex对象,使用regex literal(由
/
符号分隔)或
new RegExp(…)
构造编写。在这种特殊情况下,后者肯定是过火了。因此,只要在
/w/g
周围加上引号(已经在上面的代码片段中完成了),就可以了


至于“…
.replace('w','e')
只替换了一次…”部分,这实际上是一个很常见的问题:当使用字符串作为第一个参数时,
.replace()
将完成它的工作。

您正在给
replace
一个字符串而不是正则表达式。使用真正的正则表达式:


看起来这是他们想要的,但结果却是一个写得很糟糕的问题。他们已经将OP更新为
vard=
,这让他们看起来确实想要一个字符串。我知道replace是如何工作的。我写道,早些时候我尝试使用replace(“w”,“e”),但它只替换了第一个“w”。但我忘了正则表达式不能用引号括起来!
var el = document.getElementById('hash');
el.innerHTML = el.innerHTML.replace(/w/g, 'e');
var d = document.getElementById('hash').innerHTML.replace(/w/g,"e");