RegExp插入字符匹配,不应该

时间:2015-03-21 16:59:04

标签: javascript regex

给出以下测试(在Javascript regexp中):

    /[^A-Z^a-z]/.test('^')

返回值为false。为什么呢?

2 个答案:

答案 0 :(得分:1)

是的,它正确返回。你还包括了否定字符类中的^

not of ^ == ^
=> false

只需删除位于字符类中间的^即可返回true。请注意,字符类中间或末尾的无标题或转义^将与文字胡萝卜符号^匹配。对于否定的字符类[^..],它会做相反的事情。

> /[^A-Z^a-z]/.test('^')
false
> /[^A-Za-z]/.test('^')
true

答案 1 :(得分:1)

返回值是正确的,因为否定的字符类也会否定插入符号。说,匹配除azAZ^之外的任何字符。您可以修改如下:

/[^a-z]/i.test('^') // true