RegExp插入字符匹配并且应该'不要

RegExp caret character matched and shouldn't be

本文关键字:不要 字符 插入 RegExp      更新时间:2023-09-26

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

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

返回值为false。为什么?

是的,它返回正确。您还将^包含在否定字符类中。

not of ^ == ^
=> false

只需移除位于字符类中间的^即可返回true。请注意,在字符类的中间或最后,一个未封顶或转义的^将与字面上的胡萝卜符号^匹配。对于否定字符类[^..],它执行相反的操作。

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

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

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