的Javascript正则表达式与某些特殊字符结束,但返回true
console.log(/^[0-9a-zA-Z]+[[email protected]#$%^&*_+-=]+$/.test("123456"));
,我认为它应该返回false
因为字符串不以[email protected]#$%^&*_+-=
字符, 结束,但它运行时,它会返回true
。 它为什么会返回true
?
的Javascript正则表达式与某些特殊字符结束,但返回true
console.log(/^[0-9a-zA-Z]+[[email protected]#$%^&*_+-=]+$/.test("123456"));
,我认为它应该返回false
因为字符串不以[email protected]#$%^&*_+-=
字符, 结束,但它运行时,它会返回true
。 它为什么会返回true
?
问题是+-=
是一个范围。如果你看一下ASCII table,你可以看到,+-=
包括+
,-
,.
,/
,:
,;
,<
,=
,和所有的数字0
.. 9
。
你想要[[email protected]#$%^&*_+\-=]
(转义-
)。
你的问题是什么? – brittenb
为什么字符串“123456”匹配正则表达式“/^[0-9a-zA-Z] + [〜!@#$%^&* _ + - =] + $ /”?它在[〜!@#$%^&* _ + - =]中没有一个或多个字符 – iinux
[在正则表达式字符括号中包括连字符?](// stackoverflow.com/q/3697202) – Tushar