为什么这个正则表达式匹配?

pim*_*vdb 1 javascript regex pattern-matching

我正在尝试扩大我的正则表达式知识,但我不知道为什么以下返回true:

/[A-Z]{2}/.test("ABC")
// returns true
Run Code Online (Sandbox Code Playgroud)

我明确{2}表达了这个表达式,这意味着只有两个大写字母匹配.

根据http://www.regular-expressions.info/repeat.html:

省略逗号和最大值会告诉引擎完全重复令牌次数.

我在这里误解了什么?

Tim*_*Tim 6

您必须使用^和锚定正则表达式并$指示字符串的开头和结尾.

/^[A-Z]{2}$/.test("ABC")
// returns false
Run Code Online (Sandbox Code Playgroud)

您当前的正则表达式匹配字符串的"AB"部分.