2011-03-12 78 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

相關問題