匹配单个单词,结尾可能是标点符号或复数(正则表达式)

rgb*_*wed 7 javascript regex

我在Regex上的表现越来越好,但我想出的东西超出了我目前的能力范围.

我想构建一个函数来测试(返回true或false)以测试是否在字符串中找到一个单词.但如果在另一个单词中找到这个单词,我不希望得到一个肯定的匹配.我还想建立检查复数的可能性.

以下是我希望获得的结果的一些示例:

要找的词: "酒吧"

"字符串搜索"//它应该返回什么

"foo bar"//是的

"foo bar." //真正

"foo bar!" // true(对于'bar'之前或之后的任何其他标点符号也是如此)

"foo酒吧." //真正

"foo bares." // true(即使bares有不同的含义然后吧,我会好的,因为我需要检查用"es"复数的单词,因为我需要检查单词以确定哪些单词用"s"复数,用"es"复数

"我的名字是巴特辛普森"//假(酒吧实际上是"巴特"的一部分)

"巴特辛普森去了酒吧." //真正

我将使用javascript/jquery来检查匹配

非常感谢你的帮助!

Exp*_*lls 5

var rgx = new RegExp('\\b' + word + '(?:es|s)?\\b');
rgx.test(string);
Run Code Online (Sandbox Code Playgroud)

这将返回true您在请求中指定的所有字符串。 \b表示“单词边界”,我认为它是其中的任何字符\W(包括句号和感叹号)以及字符串的开头或结尾。