用'替换所有出现的${SENTION};消息';在javascript中

用'替换所有出现的${SENTION};消息';在javascript中,javascript,Javascript,我有一根绳子 const msg='this is the ${sentence} to end all ${sentence}' 我想用'message替换所有发生的${session} 当我做 var newMsg = msg.replace('${sentence}', 'message') 它给出了输出- 这是结束所有${SENTURE}的消息 但是我想替换所有出现的${session}。所以我试过了 var newMsg = msg.replace(/${sentence}/g,

我有一根绳子

const msg='this is the ${sentence} to end all ${sentence}'
我想用'message替换所有发生的${session}

当我做

var newMsg = msg.replace('${sentence}', 'message')
它给出了输出-

这是结束所有${SENTURE}的消息

但是我想替换所有出现的
${session}
。所以我试过了

var newMsg = msg.replace(/${sentence}/g, 'message')
如果我想替换所有出现的动态字符串怎么办

var str = JSON.stringify(JsonData).toString();                 
  for (let [key, value] of Object.entries(dummyData)) {    
       str = str.replace('${'+key+'}', value)
}
这里JsonData是JSON文件,我想用dummyData(一个对象)中的值替换它的值 请建议我如何做到这一点。提前感谢。

该方法返回一个新字符串,其中包含替换的模式的部分或全部匹配项。模式可以是字符串或RegExp,替换可以是字符串或为每个匹配调用的函数。如果模式是字符串,则仅替换第一个匹配项

您的模式是一个普通字符串,而不是正则表达式模式。因此,您应该使用带有全局
(g)
标志的正则表达式模式

const msg='这是结束所有${SENTURE}的${SENTURE}'
var newMsg=msg.replace(/\${句子}/g,“消息”)

log(newMsg)
一种更通用的正则表达式,您可以这样做

const msg='这是结束所有${SENTURE}的${SENTURE}'
让str=msg.replace(/\${(.*?\}/g,“message”);
console.log(str)
//您可以使用模板文本
让句子=“消息”;
const msg2=`这是结束所有${SENTURE}的${SENTURE}`

console.log(msg2)
@sagivbg我不喜欢这个副本,因为在这种情况下,可以通过将引号改为`to make a'来实现。使其不是替换问题而是报价问题problem@jonatjano这是如果js引擎支持它的话。@epascarello是我忽略IE的坏习惯,但即使是模板文字也是如此广泛,以至于不支持它的引擎已经需要babel之类的帮助来做任何事情了。但如果我想替换所有出现的动态字符串呢。var str=JSON.stringify(JsonData.toString();对于Object.entries(dummyData)的(let[key,value]){str=str.replace('${'+key+'}',value)}@JAYASHRISHINDE,请参阅更新部分。这里的答案是template literal,regex只是op建议的,因为我认为他不知道template literal