用另一个字符串替换字符串中的单词 - Javascript

Replacing word in a string with another string - Javascript

有谁知道我可以用另一个字符串替换字符串中找到的单词的任何正则表达式?

var replacement = "car";
var toReplace = "boat";
var str = "banana boats or boat"
str = str.replace(toReplace, replacement);

我希望 str 等于 "banana boats or car" 而不是 "banana cars or car"

有什么建议吗?

您需要 global 标记才能进行多个匹配。所以将其作为替换正则表达式传递:

new RegExp(toReplace, "g")

您可以使用单词边界 \b 只替换整个单词,而不是用所需单词替换新创建的正则表达式中单词的一部分。

var replacement = "car",
    toReplace = "boat",
    str = "banana boats or boat";
    
str = str.replace(new RegExp('\b' + toReplace + '\b', 'g'), replacement);

console.log(str);

您的问题不清楚,因为 str 在您更改之前默认情况下已经等于 "banana boats or boat"! ...但如果你坚持,你可以这样做

var replacement = "car"; 
var toReplace = "boat"; 
var str = "banana boats or boat" 
str = str.replace(replacement, toReplace);

replace 仅替换 第一个 搜索字符串实例 toReplace in str.

要替换 strtoReplace 所有 个实例,请使用 RegEx 对象和 g(全局)以 toReplace 作为搜索字符串的标志:

var replacement = "car";
var toReplace = "boat";
var str = "banana boats or boat";

var toReplaceRegex = new RegExp(toReplace, "g");
str = str.replace(toReplaceRegex, replacement); 
console.log(str); // prints "banana cars or car"