2011-03-12 55 views

回答

6

您必须使用^$来锚定正则表示字符串的开始和结束。

/^[A-Z]{2}$/.test("ABC") 
// returns false 

您当前的正则表达式匹配字符串的“AB”部分。

1

它匹配ABABC前两个字母。

做一个整场比赛中,使用^$锚:

/^[A-Z]{2}$/.test("ABC") 

这恰好2个大写字母整个字符串匹配。

1

您应该使用^[A-Z]{2}$只有整个字符串,而不是它的一部分相匹配。在你的示例中,正则表达式匹配AB - 这确实是连续两个大写字母。

1

你在你的正则表达式中缺少^$字符 - 字符串的开头和字符串的结尾。因为他们缺少你的正则表达式说:“2个字符”,而不是“只有两个字符”,所以它只要符合“AB”或在您的字符串“BC” ......

1

的文档不会说谎:)

忽略逗号和最大值都会告诉引擎重复令牌的最小次数。

它说分钟时间没有最大次

+1

究竟分钟的时间,这意味着正是2,如果我使用'{2}'作为分是2在这里。这是不正确的? – pimvdb 2011-03-12 19:37:35

+1

不,你发布的正则表达式匹配任何包含至少2个连续大写字母的字符串,所以在测试字符串的情况下,它会匹配2次,一个用于AB,另一个用于BC。尝试在这里运行一些正则表达式:http://www.rubular.com/(一个很好的正则表达式操场:D) – Augusto 2011-03-12 19:41:02

+0

啊,我想任何字符串* * *正好是两个大写字母。 – pimvdb 2011-03-12 19:41:57

相关问题