Споменах, Шринивас"" е отговорът за проверка на паролата. Регексът за минимум 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,}