/ / Regex за проверка на валидността на паролата [дубликат] - regex

Regex за проверка на потвърждаването на паролата [дубликат] - regex

Споменах, Шринивас"" е отговорът за проверка на паролата. Регексът за минимум 8 символа, 1 номер, 1 азбука и 1 специален знак е

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

С този regex мога да използвам само следните специални символи. $ @ $!% * # & , Така че, ако използвам dheepan~123 или dheepan.123 Vaildation се проваля. Как да разреша всички специални символи?

Отговори:

1 за отговор № 1

Можете да разрешите всички специални символи, като използвате W но не съм сигурен, че наистина искате да направите това ... Както и да е:

^(?=.*[A-Za-z])(?=.*d)(?=.*[W])[wW]{8,}$

0 за отговор № 2

Можете да следвате решението на @Thomas, за да дефинирате символите като всички символи, различни от думите W, но имайте предвид, че това включва празно пространство. Ако в паролата си потребителят има знака за нов ред, те почти сигурно ще бъдат блокирани.

За пароли си струва да преминете през работата по описването на точно кои символи искате да разрешите. ~ или период ., просто ги добавете към вашите класове герои в regex, както предложи @anubhava.

"^(?=.*[A-Za-z])(?=.*d)(?=.*[$@$!%*#?&])[A-Za-zd$@$!%*#?&]{8,}$"
//                                ^                     ^
//                                  __add them here __/_________
//                                     | |                    | |
"^(?=.*[A-Za-z])(?=.*d)(?=.*[$@$!%*#?&~.])[A-Za-zd$@$!%*#?&~.]{8,}$"

За да използваме регрекси отговорно, нашата цел трябва да бъде да разберем какво се случва под качулката.

^
// From the beginning of your string

(?=.*[A-Za-z])
// Look ahead                           (?=       )
// any number of chars                  .*
// Until you find an alpha character    [A-Za-z]

(?=.*d)
// Look ahead                           (?=       )
// any number of chars                  .*
// Until you find a digit               d

(?=.*[$@$!%*#?&])
// Look ahead                           (?=       )
// any number of chars                  .*
// Until you find one of these chars    [$@$!%*#?&]

[A-Za-zd$@$!%*#?&]{8,}
// Find any of these characters         [A-Za-zd$@$!%*#?&]
// 8 or more times                      {8,}