有没有人知道任何正则表达式,我可以用另一个字符串替换字符串中的单词?
var replacement = "car";
var toReplace = "boat";
var str = "banana boats or boat"
str = str.replace(toReplace, replacement);
我希望str等于"香蕉船或汽车"而不是"香蕉汽车或汽车"
有什么建议吗?
答案 0 :(得分:2)
您可以使用单词边界var replacement = "car",
toReplace = "boat",
str = "banana boats or boat";
str = str.replace(new RegExp('\\b' + toReplace + '\\b', 'g'), replacement);
console.log(str);
来替换整个单词,而不是替换新创建的正则表达式中单词的一部分。
{{1}}
答案 1 :(得分:1)
多个匹配需要global
标志。所以将其作为替换正则表达式传递:
new RegExp(toReplace, "g")
答案 2 :(得分:1)
replace
仅替换toReplace
中搜索字符串str
的第一个实例。
要替换toReplace
中str
的所有实例,请使用RegEx
对象和g
(全局)标记{{1} }}作为搜索字符串:
toReplace
答案 3 :(得分:0)
你的问题不清楚,因为 str 在更改之前默认已经等于“香蕉船或船”! ...但如果你坚持,你可以这样做
var replacement = "car";
var toReplace = "boat";
var str = "banana boats or boat"
str = str.replace(replacement, toReplace);