为什么字符范围类[A-z]匹配下划线?

时间:2013-11-09 03:09:32

标签: regex

用多种语言尝试了同样的结果。

JavaScript示例:

/[A-z]/.test("_"); // => true
/[A-z]/.test("0"); // => false
/[A-z]/.test("-"); // => false
/[A-z]/.test("A"); // => true

为什么第一个案例没有退回false

1 个答案:

答案 0 :(得分:16)

字符范围并不那么聪明。它们基于ascii代码。查看Ascii Table。大写A-Z和小写a-z范围之间存在特殊字符,即:

[
\
]
^
_
`

因此,A-z应该是A-Za-z,而不是{{1}}。