2014-02-25 70 views
0

我想只允許字母數字密碼,我已經寫了下面的代碼,以匹配相同 但同樣沒有工作只允許字母數字字符

Regex.IsMatch(txtpassword.Text,「^ [A-ZA -Z0-9 _] * $「)即使我輸入密碼測試(不包含任何數字),也不會返回假 。

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

你在使用Windows或Web應用程序....... –

+0

調試時'txtpassword.Text'的值是什麼? –

+0

http://stackoverflow.com/questions/910063/allow-only-alphanumeric-in-textbox 可能是這可以幫助你一點。 –

回答

1

首先,在「_」不是一個有效的字母數字字符。 請參閱http://en.wikipedia.org/wiki/Alphanumeric

然後,再看看您的正則表達式。

[A-ZA-Z0-9 _] *

這可以匹配0或多個字母數字字符或0以上 '_' 字符。 使用此模式,密碼'&#&#^ $'會返回TRUE。

您可能想要測試1個或更多不是字母數字的字符。如果該測試返回TRUE,則拋出錯誤。

希望這會有所幫助。

1

試試下面的表達式:

([^a-zA-Z0-9]+) 

如果您的密碼包含不字母的任何字符這將匹配。 如果你得到一個匹配,做你的錯誤處理。

+0

嗨,我試了下面的代碼如果Regex.IsMatch(txtpassword.Text,「([^ a-zA-Z0-9] +)」)= False Then div_msg.Attributes.Add(「class」,「err- msg「) lblmsg.Text =」密碼不正確「,但對於密碼455tt,它仍然不起作用 – sergioramosiker

+0

如果此模式的IsMatch返回False,則表示未找到無效字符。所以基本上你只是在密碼有效的時候說「密碼不正確」...... 只要刪除「= False」就可以了 –

1

因此,根據您在問題中所使用的正則表達式,它會出現您需要輸入一個小寫和大寫字母,一個數字和一個_的密碼;所以這裏是一個正則表達式,將做到這一點:

(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*_).{4,8} 

Regular expression visualization

Debuggex Demo

{4,8}表示密碼的長度;你可以相應地設置。

相關問題