var result = (/^[A-z0-9]+$/).test('[fugazi]')
console.log( result ) // returns: true
当A-z(字母字符)和0-9(数字)中的字符类从开头(例如,^)到结尾(例如$)时,这不应该限制测试只返回true吗?为什么javascript允许括号[]?正则表达式中的括号表示字符类,而不是该字符的匹配,这似乎是一个错误,但它在chrome,firefox和safari中的行为相同。
答案 0 :(得分:3)
它会返回true
,因为您的角色类中的A-z
范围不仅仅与A-Z
和a-z
匹配,而还包含更多字符ASCII范围介于A
和z
A-z
将匹配以下字符:
A-Z
(ASCII 65 - 90)[
\
]
^
_
`
a-z
中的所有字符(ASCII 97 - 122)