Javascript 和 Regex - 字符串中单词的严格匹配

Ivi*_*pić 0 javascript regex matching string-matching

我有一个这样的字符串:

Free-coffee and coffee-free is free coffee
Run Code Online (Sandbox Code Playgroud)

我只需要匹配和替换单独的单词free而不是单词{Free}-coffeecoffee-{free}

想法是在字符串中标记坏词并添加这样的HTML标签<strong>

Free-coffee and coffee-free is <strong>free<strong> coffee.
Run Code Online (Sandbox Code Playgroud)

我尝试使用空格,但如果在这句话之前有空格,有时会失败。

这是我当前的正则表达式:

/(\sfree\s|\sfree|free\s)/ig
Run Code Online (Sandbox Code Playgroud)

注意:这需要不区分大小写。

这是代码示例:

var text = "Free-coffee and coffee-free is free coffee";
text = text.replace(/(\sfree\s|\sfree|free\s)/ig, " <strong>strong</strong> ");
Run Code Online (Sandbox Code Playgroud)

请帮帮我。

Rom*_*est 5

使用以下正则表达式模式:

var text = "Free-coffee and coffee-free is free coffee";
text = text.replace(/(^|\s)(free)(\s|$)/ig, "$1<strong>$2</strong>$3");

console.log(text);
Run Code Online (Sandbox Code Playgroud)

(^|\s)- 确保free单词位于字符串的开头或前面有空格

(\s|$)- 确保free单词位于字符串的末尾或后跟空格