Javascript 精确匹配字符串

Javascript 精确匹配字符串,javascript,regex,Javascript,Regex,如果文本是完全匹配的,那么只有在JavaScript中才匹配的正则表达式是什么?也就是说,字符串的另一端不应该有额外的字符 例如,如果我试图匹配abc,则1abc1,1abc,和abc1将不匹配。使用开始和结束分隔符:^abc$以“^”开头,以“$”结尾。例如: var re = /^abc$/; 将匹配“abc”,但不匹配“1abc”或“abc1”。您可以在了解更多信息,具体视情况而定。你可以 string.match(/^abc$/) 但这与下面的字符串不匹配:“字母表的前3个字母是ab

如果文本是完全匹配的,那么只有在JavaScript中才匹配的正则表达式是什么?也就是说,字符串的另一端不应该有额外的字符


例如,如果我试图匹配
abc
,则
1abc1
1abc
,和
abc1
将不匹配。

使用开始和结束分隔符:
^abc$

以“^”开头,以“$”结尾。例如:

var re = /^abc$/;
将匹配“abc”,但不匹配“1abc”或“abc1”。您可以在

了解更多信息,具体视情况而定。你可以

string.match(/^abc$/)
但这与下面的字符串不匹配:“字母表的前3个字母是abc。不是abc123'

我想您应该使用
\b
(单词边界):

var str='字母表的前3个字母是abc。不是abc123';
var pat=/\b(abc)\b/g;

console.log(str.match(pat))@Jake,我很高兴howards的答案有效,但我想你应该注意,只有当字符串中只有abc项时,它才会有效。例如,它与“字母表中的前3个字母是abc”不匹配。这对我来说很有效,也许我的示例应该是“abc def ghi”作为匹配目标。@Jake如果您的字符串是“abc def ghi”,则/^abc$/将不起作用。例:我明白了,如果我想匹配“abc def ghi”,我的正则表达式应该是
^abc def ghi$
注意:要使一个模式与整个字符串匹配,可能需要用一个(非)捕获组包装它:
/^(?:abc|def)$/
/^(abc|def)$/
。否则,如果不使用组,
/^abc|def$/
将匹配字符串开头的
abc
,或字符串结尾的
def
。@NiharSawant这是因为这不是OP所问问题的答案。OP显然不想匹配“字母表的前3个字母是abc”,这里的第二个解决方案不适用于匹配一般正则表达式,例如/^[abc]+$/对于那些新加入正则表达式的人,有两个很好的答案,这取决于你在寻找什么。询问者确实想要
\babc\b
,这将允许例如
123 abc 123
abc
匹配(但不包括问题中的负面示例);但是,
^abc$
将确保
a
位于字符串的开头,而
c
位于末尾,否则它将不匹配。