无法将“#”检测为特殊键(正则表达式 Asp.net)

Can't detect '#' as special key (Regex Asp.net)

我是 Asp 的新手。我在使用正则表达式检查密码输入时遇到问题。这里的正则表达式

<asp:RegularExpressionValidator ID="Regex1" runat="server" 
                    ErrorMessage="Password must contain: Minimum 8 characters atleast 1 UpperCase Alphabet, 1 LowerCase Alphabet, 1 Number and 1 Special Character" 
                    Font-Italic="True" Font-Size="Small" ForeColor="Red" 

                    ValidationExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&amp;])[A-Za-z\d$@$!%*?&amp;]{8,}"
                    ControlToValidate="TextBoxNewPassword" Display="Dynamic" />

当我输入 "Hamlida123#" 时,正则表达式不允许。如何解决?

您需要在正则表达式中专门包含“#”字符,如下所示:

ValidationExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&amp;#])[A-Za-z\d$@$!%*?&amp;#]{8,}"

Demo

根据您当前的正则表达式,我假设您只允许某些非单词字符,因此您需要在正则表达式中列出每个允许的字符,如上所示。