如何根据javascript中的字典将所有具有特殊字符的子字符串替换为另一个子字符串?

如何根据javascript中的字典将所有具有特殊字符的子字符串替换为另一个子字符串?,javascript,substring,Javascript,Substring,我有一根像这样的大绳子-: str=“$a+$b+$a+$c?$a$c$c…..” 和一个字典对象-: {“$a”:“2”、“$b”:“3”、“$c”:“4”、…}即所有键都是以“$”开头的子字符串 使用replace() const data={“$a”:“2”、“$b”:“3”、“$c”:“4”} const str=“$a+$b+$a+$c?$a$c$c…” const res=str.replace(/\$\w+\b/g,match=>data[match]) console.log(

我有一根像这样的大绳子-:
str=“$a+$b+$a+$c?$a$c$c…..”

和一个字典对象-:

{“$a”:“2”、“$b”:“3”、“$c”:“4”、…}
即所有键都是以“$”开头的子字符串

使用
replace()

const data={“$a”:“2”、“$b”:“3”、“$c”:“4”}
const str=“$a+$b+$a+$c?$a$c$c…”
const res=str.replace(/\$\w+\b/g,match=>data[match])

console.log(res)
当字符串中有其他子字符串以$开头但在字典中没有时,此解决方案不起作用,例如-:
const data={“$a”:“2”,“$b”:“3”,“$c”:“4”}
const str=“$a+$b+$a+$c?$a$c$d”这里我不想更改$d。但是您的解决方案输出如下-:
2+3+2+4?244未定义
我是否需要使用字典以外的其他工具,如果是,有任何建议吗?请尝试
data[match]| |‘
实际上我想要这个答案-:
2+3+2+4?244$d
即不想修改其他子字符串,但它将返回此
2+3+2+4?244
@AmanGupta
数据[匹配]|匹配
。请适当提问你需要什么。至少试一下