正则表达式允许<和祝辞

Regex allowing < and >

本文关键字:正则表达式      更新时间:2023-09-26

谁能告诉我为什么这个正则表达式允许<> ?

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

My goal is

  • #。(上、下).
  • 波浪号
  • 所有在"SHIFT"区域,键盘上1-0。
  • + - _
/^[A-Za-z0-9^'~^'!@/#^'$^'%&^'*+-_()]*$/
                               ^^^--- plus to underscore

<>在该范围内:

+   -> ascii(43)
<   -> ascii(60)
>   -> ascii(62)
_   -> ascii(95)

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

这是因为当您放入第二个-(打算检查字面量-)时,它实际上表示+(之间的范围,其中恰好包括<>

您只需要转义-(还要注意您的regex可以简化):

/^[A-Za-z0-9~!@#$%^&*()+'-_]*$/