在 Javascript 的同一个句子中用另一个词替换另一个词而不替换另一个包含相似子串的词

Replacing a word with another word without replacing another word which contains a similar substring in the same sentence in Javascript

我正在尝试将一个词替换为另一个词,特别是“has”替换为“had”。但是字符串包含单词“hash”,它有子字符串“has”,所以它也被替换了。我该怎么做才能解决这个问题?

function replace() {
    sentence = sentence.replaceAll("has", "had");
}

在要替换的词周围放置词边界:

var input = "A man who has an appetite ate hashed browns";
var output = input.replace(/\bhas\b/g, "had");
console.log(output);

请注意,我使用了常规 replace 以及 /g 全局标志。这应该与使用 replaceAll.

具有相同的行为