Регексът за парола трябва да съдържа поне осем символа, поне една цифра, малки и големи букви и специални символи.

Искам регулярен израз, който да проверява това:

Паролата съдържа поне осем символа, включително поне едно число, и включва както малки, така и големи букви и специални символи, например #, ?, !.

Тя не може да бъде старата ви парола или да съдържа потребителското ви име, "password" или "websitename"

А ето и моят израз за валидиране, който е за осем символа, включително една главна буква, една малка буква и едно число или специален символ.

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

Как мога да го напиша за паролата трябва да бъде от осем символа, включително една главна буква, един специален символ и буквено-цифрови знаци?

Минимум осем символа, поне една буква и една цифра:

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

Минимум осем знака, поне една буква, една цифра и един специален знак:

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

Минимум осем знака, поне една главна буква, една малка буква и една цифра:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"

Минимум осем знака, поне една главна буква, една малка буква, една цифра и един специален знак:

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

Минимум осем и максимум десет знака, поне една главна буква, една малка буква, едно число и един специален знак:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"
Коментари (22)

Можете да използвате този регекс с множество lookahead assertions (conditions):

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

Този регекс ще приложи тези правила:

  • Поне една главна английска буква, (?=.*?[A-Z])
  • Поне една малка английска буква, (?=.*?[a-z])
  • Поне една цифра, (?=.*?[0-9])
  • Поне един специален символ, (?=.*?[#?!@$%^&*-])
  • Най-малко осем на дължина .{8,} (с котви)
Коментари (36)

Само едно малко подобрение за отговора на @anubhava's: Тъй като специалните символи са ограничени до тези от клавиатурата, използвайте това за всеки специален символ:

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$

Този регекс ще приложи тези правила:

  • Поне една главна английска буква
  • Поне една малка английска буква
  • Поне една цифра
  • Поне един специален символ
  • Минимум осем на брой
Коментари (3)