13

用多种语言进行了尝试,结果相同。

JavaScript 示例:

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

为什么第一个案件没有返回false

4

1 回答 1

23

字符范围不是那么智能。它们基于 ascii 代码。查看Ascii 表A-Z大小写范围之间存在特殊字符a-z,即:

[
\
]
^
_
`

所以,而不是A-z应该是A-Za-z.

于 2013-11-09T03:09:31.827 回答