我想只允许使用字母数字密码,我已经编写了以下代码来匹配相同的密码 但同样不起作用
Regex.IsMatch(txtpassword.Text,“^ [a-zA-Z0-9 _] * $”)永远不会返回false 即使我输入密码测试(不包含任何数字)。
ElseIf Regex.IsMatch(txtpassword.Text, "^[a-zA-Z0-9_]*$") = False Then
div_msg.Attributes.Add("class", "err-msg")
lblmsg.Text = "password is incorrect"
I have tried this also
Dim r As New Regex("^[a-zA-Z0-9]+$")
Dim bool As Boolean
bool = r.IsMatch(txtpassword.Text) and for txtpassword.Text = '4444' , bool is coming true i dont know what is wrong.
答案 0 :(得分:1)
首先,'_'不是有效的字母数字字符。 见http://en.wikipedia.org/wiki/Alphanumeric
然后,再看一下你的正则表达式。
[A-ZA-Z0-9 _] *
这可以匹配0个或更多字母数字字符或0个或更多个“_”字符。 使用此模式,密码'&#&#^ $'将返回TRUE。
您可能希望测试一个或多个不是字母数字的字符。如果该测试返回TRUE,则抛出错误。
希望这有帮助。
答案 1 :(得分:1)
尝试以下表达式:
([^a-zA-Z0-9]+)
如果您的密码包含任何非字母数字字符,则匹配。 如果你得到了匹配,请进行错误处理。
答案 2 :(得分:1)
因此,根据您在问题中使用的正则表达式,出现您想要一个包含一个小写和大写字母,一个数字和一个_
的密码;所以这里有一个正则表达式:
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*_).{4,8}
{4,8}
表示密码的长度;你可以相应地设置它。