正则表达式允许<和>

gra*_*der 1 javascript regex

任何人都可以告诉我为什么这个正则表达式允许 <>

function IsValidPassword(password) {
    var regex = /^[A-Za-z0-9^\~^\!@/#^\$^\%&^\*+-_()]*$/; /* AlphaNumerics.  ~ (Tilde) (All "Shifts" 1-0)  underscore plus and minus */
    return regex.test(password);
}
Run Code Online (Sandbox Code Playgroud)

我的目标是

  • 字母数字.(上部和下部).
  • 波浪号
  • "SHIFT"区域中的所有内容,键盘上的1-0.
  • + - _

Mar*_*c B 7

/^[A-Za-z0-9^\~^\!@/#^\$^\%&^\*+-_()]*$/
                               ^^^--- plus to underscore
Run Code Online (Sandbox Code Playgroud)

<>在该范围内:

+   -> ascii(43)
<   -> ascii(60)
>   -> ascii(62)
_   -> ascii(95)
Run Code Online (Sandbox Code Playgroud)

+-_范围也恰好包括整个大写字母,因此您可以A-Z从模式中删除它仍然可以工作.

  • ..还有更多.通过预先设置反斜杠来修复. (4认同)