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

标签 javascript regex matching string-matching

我有一个像这样的字符串:

Free-coffee and coffee-free is free coffee

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

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

Free-coffee and coffee-free is <strong>free<strong> coffee.

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

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

/(\sfree\s|\sfree|free\s)/ig

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

这是代码示例:

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

请帮助我。

最佳答案

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

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);

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

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

关于Javascript 和 Regex - 字符串中单词的严格匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41306230/

相关文章:

javascript - 如何循环遍历 JSON(使用 AngularJS)并将结果放入 Javascript 数组中?

php - 将 Javascript 日期格式转换为所需的 PHP 格式

regex - R中的模式匹配和替换

r - 有条件地将两个大型数据集的多列中的元素相互匹配

r - 通过R中的模糊多对一字符串匹配匹配两个数据集

opencv - 半全局 block 匹配

javascript - 克隆的 Select2 没有响应

javascript - 检查并计算选中复选框的数量

regex - 具有正面前瞻/后视的正则表达式

regex - matlab - 从(奇数)字符串中提取数字