RegExp带有特殊字符(。)javascript的单词边界

时间:2017-05-03 01:55:09

标签: javascript regex

我想找到“美国”。 (如果它在一个字符串中作为整个单词)。

好的字符串应该是

U.S.A.
u.s.a.
U.S.A. is a great country
Is this U.S.A. ?

错误的字符串是

U.S.A.mnop
U.S.A

我尝试使用

/\bU\.S\.A\.\b/i

但奇怪的是,有效的是 - (但它对其他国家来说是失败的,因此没有用)

/\bU\.S\.A\.\B/i

这与我在文档中的理解相反,并且已经搜索了这个并且存在许多类似的问题,但它们都没有帮助我理解这个问题。我认为最后一个“。”被\ b消耗,因此无法正常工作,但我仍感到困惑。

有人可以帮忙解释一下和正确的搜索字符串吗?它还应该对没有特殊字符的其他字符串进行正确的单词搜索。

1 个答案:

答案 0 :(得分:2)

您可以先检查单词边界(正如您所做的那样),但由于.,棘手的部分位于您无法使用单词边界的末尾。但是,您可以在最后检查空白字符:

/\b(u\.s\.a\.)(?:\s|$)/gi

查看Regex101