Regex, чтобы включить все специальные символы - PullRequest
0 голосов
/ 28 февраля 2019

Я не могу найти подходящий ответ для этого.

Мне нужно регулярное выражение, чтобы убедиться, что есть хотя бы one special character, one number, one upper и one lowerи длиной не менее 8.

У меня есть несколько здесь, но по какой-то причине, когда я добавляю больше символов, он не распознает их.

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

Я хочу добавить каждый отдельный специальныйхарактер.

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Следующее регулярное выражение должно сделать трюк: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*\W)[\S]{8,}$

0 голосов
/ 28 февраля 2019

Попробуйте Regex: (?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@!%*?&!"£$%^&*()_+{}:@~<>?|=[\];'#,.\/\\-])[A-Za-z\d$@!%*?&!"£$%^&*()_+{}:@~<>?|=[\];'#,.\/\\-]{8,}

Демо

0 голосов
/ 28 февраля 2019

Пожалуйста, старайтесь избегать длинных и сложных регулярных выражений, потому что в будущем их будет сложно понять и изменить.Вместо этого определите несколько простых и понятных регулярных выражений, затем объедините их с кодом c #

var hasLowercaseChar = new Regex("[a-z]");
var hasUppercaseChar = new Regex("[A-Z]");
var hasDigitChar = new Regex("[0-9]");
var hasSpecialChar = new Regex("\\$!\\^-@%&\\.\\*");

var input = "" // your input string here
var passwordIsValid = hasLowercaseChar.IsMatch(input)
    && hasUppercaseChar.IsMatch(input)
    && hasDigitChar.IsMatch(input)
    && hasSpecialChar.IsMatch(input)
    && input.Length >= 8;

. В приведенном выше примере каждое регулярное выражение является простым, и даже если вы не уверены, что оно должно соответствовать, вы можете сделать это из имен переменных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...