的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