2016-03-15 5 views
0

Я хотел проверить свой пароль ввода в поле пароля в WPF, чтобы его только aplhabets, цифры и специальные символы. Я сделал следующий код: bt цикл прямо идет к Else Loop. Что я должен сделать для его правильного функционирования?Как использовать Regex в окне пароля в WPF

Regex regex = new Regex("^(?=.+[A-Za-z])(?=.+\\d)(?=.+[[email protected]$!%*#?&])[A-Za-z\\[email protected]$!%*#?&]{8,}$"); 
if (regex.IsMatch(txtPassword.ToString())) 
{ 
    MessageBox.Show("Data Saved Correctly"); 
} 
else 
{ 
    txtPassword.Clear(); 
    MessageBox.Show("Password should contain atleast one alphabet,number & special character"); 
} 
+0

Очевидно, вы не получаете матч - ваш регулярное выражение разве делать то, что вы думаете, это – BugFinder

+2

что тип '' txtPassword – SeM

+1

, если это '' TextBox' использовать txtPassword .Text' вместо 'txtPassword.ToString() ' – SeM

ответ

0

Использование txtPassword.Password вместо txtPassword.ToString().

Удачи в вашем проекте :)

0

txtPassword.ToString() дает строковое представление текстового поля ..

Это должно быть txtPassword.Password

+0

Примечание: использование ['SecurePassword'] (https://msdn.microsoft.com/en-us/library/system.windows.controls.passwordbox.securepassword (v = vs.110) .aspx) было бы лучшим вариантом но у меня не было возможности проверить это с помощью проверки регулярного выражения. – Sayse

+1

Hey @sayse thnx для ответа. Он сработал :) – user76065271

+0

@beginner_coder не стоит беспокоиться, если вы получите шанс попробовать использовать безопасный пароль, вместо этого есть примечание в документах, которые я связывал, которые будут предпочтительнее – Sayse