为什么这个赛前模式在数字输入时返回true


Why does this pregmatch pattern return true on a number input?

我知道这对一些人来说是非常基本的,但这让我头疼。为什么这个图案是

/[!@#$%^&*()+|.*-<>''`]/ 

在数字输入(即abcd123)上返回true。在这个测试仪上测试了它

您需要转义短划线,否则它将被解释为字符范围'x2A-'x3E:

/[!@#$%^&*()+|.*'-<>''`]/ 

这是因为正则表达式中有-符号。

您必须反斜杠"-",如下所示:

/[!@#$%^&()+|.'-<>''`]/

我认为你也应该反斜杠所有的特殊字符。