Как составить надежный пароль. Как создать надёжный пароль Придумать пароль из 8 символов и латинские

Мне нужно регулярное выражение, чтобы проверить это:

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

Это не может быть ваш старый пароль или содержать ваше имя пользователя, "password" или "websitename"

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

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

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

javascript asp.net regex

24 Ответов


877

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

"^(?=.*)(?=.*\d){8,}$"

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

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

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

"^(?=.*)(?=.*)(?=.*\d){8,}$"

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

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

Минимум восемь и максимум 10 символов, по крайней мере одна заглавная буква, одна строчная буква, одно число и один специальный символ:

"^(?=.*)(?=.*)(?=.*\d)(?=.*[@$!%*?&]){8,10}$"


53

Регулярные выражения не имеют оператора AND, поэтому довольно трудно написать regex, который соответствует действительным паролям, когда действительность определяется чем-то AND, чем-то еще AND, чем-то еще...

Но регулярные выражения имеют оператор OR, поэтому просто примените теорему DeMorgan и напишите regex, который соответствует недопустимым паролям:

Все, что содержит менее восьми символов OR все, что не содержит цифр OR все, что не содержит прописных букв OR или ничего, что не содержит строчных букв OR все, что не содержит специальных символов.

^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|*)$

Если что-то соответствует этому, то это неверный пароль.


29

Только небольшое улучшение для @anubhava"s ответа: так как специальные символы ограничены теми, что находятся на клавиатуре, используйте это для любого специального символа:

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

Этот regex будет применять эти правила:

  • По крайней мере одна заглавная английская буква
  • По крайней мере одна строчная английская буква
  • Хотя бы одна цифра
  • Хотя бы один специальный символ
  • Минимум восемь в длину


20

У меня были некоторые трудности с тем, чтобы следовать самому популярному ответу для моих обстоятельств. Например, моя проверка была неудачной с такими символами, как; или [ . Меня не интересовал белый список моих специальных символов, поэтому я вместо этого использовал [^\w\s] в качестве теста - проще говоря - сопоставление не словесных символов (включая числовые) и не пробелов. Подводя итог, вот что сработало для меня...

  • по крайней мере 8 персонажей
  • как минимум 1 числовой символ
  • как минимум 1 строчная буква
  • как минимум 1 заглавная буква
  • как минимум 1 специальный символ
/^(?=.*?)(?=.*?)(?=.*?)(?=.*?[^\w\s]).{8,}$/ ^(?=\S*)(?=\S*)(?=\S*\d)(?=\S*[^\w\s])\S{8,}$

но он не принимает _(подчеркивание) в качестве специального символа (например. Aa12345_).

Улучшенное одно:

^(?=\S*)(?=\S*)(?=\S*\d)(?=\S*([^\w\s]|[_]))\S{8,}$


2

Я нашел здесь много проблем, так что я сделал свой собственный.

Вот он во всей своей красе, с испытаниями:

^(?=.*)(?=.*)(?=.*\d)(?=.*([^a-zA-Z\d\s])).{9,}$

Есть на что обратить внимание:

  1. не использует \w , потому что это включает в себя _ , который я тестирую.
  2. У меня было много проблем с подбором символов, не совпадая с концом строки.
  3. Не указывает символы конкретно, это также связано с тем, что разные локали могут иметь разные символы на своих клавиатурах, которые они могут захотеть использовать.


1

Просто мы можем сделать это с помощью HTML5.

Используйте приведенный ниже код в атрибуте pattern,

Pattern="(?=^.{8,}$)((?=.*\d)(?=.*\W+))(?![.\n])(?=.*)(?=.*).*$"

Он будет работать идеально.


1

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

((?=.*\\d)(?=.*)(?=.*)(?=.*[~!@#$%^&*()]).{8,20})


1

Используйте следующие Regex для выполнения следующих условий:

Conditions: 1] Min 1 special character. 2] Min 1 number. 3] Min 8 characters or More

Regex: ^(?=.*\d)(?=.*[#$@!%&*?]){8,}$


0

В Java/Android, проверить пароль хотя бы с одной цифрой, одной буквой, одним специальным символом по следующей схеме:

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


0

Попробовать это:

^.*(?=.{8,})(?=.*)(?=.*)(?=.*[@#$%^&+=])*$

Это регулярное выражение работает для меня идеально.

Function myFunction() { var str = "c1TTTTaTTT@"; var patt = new RegExp("^.*(?=.{8,})(?=.*)(?=.*)(?=.*[@#$%^&+=])*$"); var res = patt.test(str); console.log("Is regular matches:", res); }


0

Надеюсь, что ниже работает. Я попробовал это в пользовательской политике Azure.

^(?=. ) (?=. ) (?=. \d)(?=. [@#$%^&*-_+={}|\:",?/ ~"();!])({}|\\:",?/ ~"();!]|.(?!@)){6,16}$


-1

Решение, которое я нашел в одном из предыдущих ответов, как:

Минимум 8 символов минимум 1 заглавный алфавит, 1 строчный алфавит, 1 число и 1 специальный символ: "^(?=. ) (?=. ) (?=. \d)(?=. [$@$!% ?&]){8 ,}" ..

.

это не сработало для меня, но следующая упрощенная версия и отлично работает (добавьте любой специальный символ, который вам нравится, я добавил # здесь), а также добавьте правило числа, как вы делаете с буквами как:

"^(?=.*)(?=.*)(?=.*)(?=.*[$@$!%*?&]){8,}"


Regex проверка пароля с помощью условного оператора Java

Я новичок в regex. В основном мне нужно проверить пароль в Java для следующего требования: Пароль должен содержать не менее шести символов. Пароль может содержать не более 20 символов Для того,...


regex разрешить только буквы, цифры, точки, подчеркивания, тире. не менее 5 символов

Как сделать regex подходят ниже правил разрешить только буквы (прописные или строчные), цифры, точки, подчеркивания, тире не менее 5 символов не может содержать общих терминов или расширений...


Regex, чтобы "запретить специальные символы или пробелы", но "разрешить числа и "uppercase" OR "lowercase" букв"

Я уже этим пользуюсь regex: ^{6,}$ он позволяет: цифры, прописные буквы, строчные буквы. он запрещает: пробелы и специальные символы или символы. Но я хочу изменить его на: - разрешить:...


Регулярное выражение для пароля

Мне нужна помощь в создании пароля regex. Пароль должен содержать не менее 4 символов, буквы (прописные и строчные), цифры и специальные символы - без пробелов. МСН как регулярное выражение.


Regex для комбинации заданных правил

Я пытаюсь написать regex, чтобы проверить пароль для данного правила. Пароли должны иметь длину не менее 8 символов и содержать не менее 3 из следующих 4 типов символов: строчные буквы (например,...


Один regex для комплексной проверки пароля

Я должен проверить пароль, чтобы они соответствовали этим правилам A) пароль должен содержать символы из 3 из следующих 4 классов: Английские Заглавные Буквы A, B, C, ... Зет Английские строчные...


Regex пароль должен содержать не менее 8 символов, не менее 1 цифры, буквы и специальные символы

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


Regex для пароля длиной не менее 6 символов

Мне нужен regex для проверки пароля с нижеприведенными условиями Длина не менее 6 символов Должно содержать не менее 1 буквы Должно содержать не менее 1 числа Если пароль содержит специальные...


Узор иногда совпадал а иногда нет

Я реализовал шаблон в angular 5 со следующим кодом в поле.ts-файл для проверки пароля. Это должно быть сделано-поддержка минимум восьми символов, по крайней мере одной прописной буквы, одной...


regex для паролей длиной не менее 8 символов, прописных,строчных, цифр, специальных символов и не повторяющихся?

Привет я хочу найти регулярное выражение, которое удовлетворяет этим условиям. (1) пароли должны быть не менее 8 символов (2) он должен содержать по крайней мере заглавные, строчные буквы, цифры и...

12345 - надо нам пароль менять. Как придумать сложный пароль и запомнить его навсегда

Интернет-мошенники ежедневно крадут миллионы паролей от почтовых ящиков и учетных записей пользователей. Но не отчаивайтесь - мы дадим несколько очень простых, но действенных советов, которые защитят вас от потери контроля над своими ресурсами.

Для тех, кто предпочитает смотреть, мы подготовили видеоверсию этой статьи:



1. Используйте сложные пароли

Вы догадывались, да? Простите за банальность, но это главный совет - которым до сих пор большинство пользователей пренебрегают. Недаром пароли типа qwerty остаются в топе самых популярных по сей день.

Не используйте в качестве пароля имена любимых героев, название футбольного клуба или кличку домашнего питомца, так как эту информацию легко найти в ваших соцсетях. Сложный пароль должен состоять из произвольной комбинации различных знаков и символов.

2. Используйте заглавные и строчные буквы, цифры и символы

, пользователи не любят длинные пароли - их легко забыть и лень набирать. Пароль из 8 символов считался надежным только на заре развития компьютеров; сегодня восьмизначная комбинация механически подбирается за пару часов.

Однако даже короткий пароль (до 8 символов) можно сделать относительно надежным, если использовать цифры и буквы в разных регистрах. На подбор такого пароля потребуется уже 2-3 дня.

Максимальная надежность достигается простым увеличением длины пароля и использованием различных символов ($, %, &, ’’, #), в тех сервисах, где это возможно.

3. Используйте акронимы

Выберите фразу, которую вы точно не забудете, и используйте в качестве пароля комбинацию первых букв из каждого слова. Например, стихотворение 1828 года «У Лукоморья дуб зеленый, златая цепь на дубе том...» превращается в ULdzzcndt1828.




4. Используйте с ключевое слово

Выберите ключевое слово и смешивайте его с названием каждого сайта, на котором у вас есть учетная запись. Например, для ключевого слова «antivirus» пароль на сайте будет выглядеть так: ca ln ut bi ev si er tu ns od32. Преимущество такого трюка в том, что вы будете иметь надежный пароль для каждого сайта.

Как подсказывают в комментариях, этот метод может подвести в случае смены адреса сайта - однако в этом случае достаточно воспользоваться автовосстановлением пароля.

5. Не используйте один пароль для разных учетных записей

Как настоящий художник, будьте оригинальны. Помните, что разные сайты имеют разный уровень безопасности. Например, большинство сервисов посылают пароли по электронной почте через процедуру восстановления пароля. Заполучив пароль от небезопасного сервиса, хакеры могут попытаться использовать его и для вашей почты или соцсетей - один и тот же пароль станет ключом ко всем вашим ресурсам.

Сократить риски можно только используя уникальные сложные пароли для всех учетных записей.

6. Меняйте пароли чаще

В случае с кражей паролей Mail.ru 99,982% всех паролей оказались неактуальны. Во многом это произошло из-за того, что большая часть базы украденных учетных записей была скомпилирована из ряда других баз.

Однако в случае с 57 млн адресов (именно столько записей было в утекшей базе) этого недостаточно - вы можете поручиться, что ваш ящик на Mail.Ru не скомпрометирован злоумышленниками? Причем это лишь один пример утекшей базы - сколько миллионов актуальных адресов гуляют сегодня по рукам хакеров мы не знаем.

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




7. Используйте менеджер паролей

Как не забыть пароль от учетной записи ВКонтакте, почтового ящика и интернет-банкинга? Мало кто может запомнить десятки сложных паролей. Это нормально.

К счастью, разработчики программного обеспечения придумали решение. Сегодня существует множество инструментов, которые помогают пользователям надежно хранить неограниченное количество самых сложных паролей. Например, можно воспользоваться самыми популярными - LastPass или 1Password.

Однако менеджеры паролей имеют свои слабые места. Самые важные учетные записи, через которые можно получить доступ к вашей банковской информации, не стоит доверять даже наиболее надежным программам.

8. Не забывайте о «секретном вопросе»

В совете №1 мы рекомендовали не использовать в качестве пароля данные, которые можно легко узнать о вас из социальных сетей. То же самое касается и «секретных вопросов», о которых многие почему-то забывают или не придают им значения. Кроме того, злоумышленники могут запросто подобрать ответ из базы популярных вариантов.

Попробуйте использовать тактику абсурда, когда ответ не имеет ничего общего с секретным вопросом. Девичья фамилия матери? Аспирин! Кличка домашнего животного? 1989!

9. Используйте двухфакторную аутентификацию

Чтобы максимально сократить риск утечки учетных данных, используйте двухфакторную аутентификацию везде, где возможно.

Большинство соцсетей, почтовых и банковских сервисов позволяют включить подтверждение авторизации по SMS. Таким образом мошенники не смогут получить доступ к вашей учетной записи, если у них в руках не будет вашего мобильного телефона.

Так, если у вас есть учетная запись на Яндексе, рекомендуем воспользоваться функцией двухфакторной аутентификации Яндекс.Ключ :

  • Скачайте приложение для Android или iOS
  • Введите пароль или QR-код
  • Войдите на Яндекс
  • Profit!
P. S. Распечатайте и сохраните коды восстановления на случай, если смартфон выйдет из строя или потеряется.


10. Антивирус - наше все

Пароли не просто так попадают к хакерам, не уплывают к ним по воздуху (если не считать обычного мошенничества, когда сами пользователи сообщают преступникам пароли от своих сервисов).

Личные данные собирают и пересылают хакерам вполне конкретные вредоносные программы, которые всеми правдами и неправдами стремятся попасть на ваш ПК, ноутбук или смартфон.

Поэтому поставить надежный антивирус с (и регулярно обновлять базы) - один из главных способов сберечь ваши деньги, нервы и приватность.

Обязательные требования к надежному паролю

Пароль не должен содержать

  • Личную информацию, которую легко узнать. Например: имя, фамилию или дату рождения.
  • Очевидные и простые слова, фразы, устойчивые выражения и наборы символов, которые легко подобрать. Например: password, parol, abcd, qwerty или asdfg, 1234567.

Способы генерации пароля

  • Придумайте алгоритм для составления паролей.
    Например, возьмите за основу любимое стихотворение или изречение. Запишите его строчными и заглавными латинскими буквами и замените некоторые из них похожими цифрами или символами: I_p0Mn|O_4y9n0e Mg№vEn|E (Я помню чудное мгновенье).
  • Воспользуйтесь генератором паролей.
    С помощью программы Kaspersky Password Manager вы можете генерировать сложные пароли, проверять их надежность и безопасно хранить. Вы также можете установить в браузере расширение Kaspersky Password Manager для автоматического заполнения полей ввода данных на сайтах.

Как часто менять пароль

Защита пароля

  • Никому не сообщайте и не отправляйте свои пароли.
  • Не оставляйте в доступном месте пароли, записанные на бумаге.
  • Используйте менеджер паролей или встроенное в браузер хранилище паролей.
  • Используйте разные пароли для ваших учетных записей. Если вы будете использовать одинаковые пароли, а злоумышленник узнает пароль от одной учетной записи, он сможет получить доступ ко всем остальным.


Регулярное выражение для пароля должно содержать не менее восьми символов, как минимум одно число и буквы нижнего и верхнего регистра и специальные символы (15)

Используйте следующее Regex для выполнения следующих условий:

Conditions: 1] Min 1 special character. 2] Min 1 number. 3] Min 8 characters or More

Regex: ^(?=.*\d)(?=.*[#$@!%&*?]){8,}$

Может протестировать онлайн: https://regex101.com

Я хочу, чтобы регулярное выражение проверяло, что:

Пароль содержит не менее восьми символов, включая хотя бы одно число, и включает в себя как нижние, так и прописные буквы и специальные символы, например # ? , ! ,

Он не может быть вашим старым паролем или содержать ваше имя пользователя, "password" или "websitename"

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

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

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

@ClasG уже suggested:

^(?=\S*)(?=\S*)(?=\S*\d)(?=\S*[^\w\s])\S{8,}$

но он не принимает _ (подчеркивание) как специальный символ (например, Aa12345_).

Улучшенный:

^(?=\S*)(?=\S*)(?=\S*\d)(?=\S*([^\w\s]|[_]))\S{8,}$

В Java / Android, чтобы проверить пароль с хотя бы одним номером, одной буквой, одним специальным символом в следующем шаблоне:

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

В соответствии с вашей потребностью эта модель должна работать нормально. Попробуй это,

^(?=(.*\d){1})(.*\S)(?=.*){8,}

Просто создайте строковую переменную, назначьте шаблон и создайте логический метод, который возвращает true, если шаблон правильный, иначе false.

String pattern = "^(?=(.*\d){1})(.*\S)(?=.*){8,}"; String password_string = "Type the password here" private boolean isValidPassword(String password_string) { return password_string.matches(Constants.passwordPattern); }

Импортируйте файл JavaScript jquery.validate.min.js .

Вы можете использовать этот метод:

$.validator.addMethod("pwcheck", function (value) { return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && //.test(value) && //.test(value) && //.test(value) });

  1. По крайней мере, одно английское письмо в верхнем регистре
  2. По крайней мере, одно строчное английское письмо
  3. По крайней мере, одна цифра
  4. По крайней мере один специальный символ

Надеюсь, что ниже работает. Я пробовал это в пользовательской политике Azure.

(? =. ) (? =. ) (? =. \ d) (? =. [@ # $% ^ & * -_ + = {} | \: ",? / ~"();!])({}|\\:",?/ ~" (); ] |. (?! @)) {6,16} $

Не напрямую отвечая на вопрос, но действительно ли это должно быть регулярное выражение?

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

Кроме того, регулярное выражение обычно несколько раз медленнее, чем императивное или функциональное решение.

Например, следующая (не очень FP) функция Scala решает исходный вопрос примерно в три раза быстрее, чем регулярное выражение самого популярного ответа. То, что он делает, также настолько ясно, что вам не нужен единичный тест:

Def validatePassword(password: String): Boolean = { if (password.length < 8) return false var lower = false var upper = false var numbers = false var special = false password.foreach { c => if (c.isDigit) numbers = true else if (c.isLower) lower = true else if (c.isUpper) upper = true else special = true } lower && upper && numbers && special }

Попробуй это:

^.*(?=.{8,})(?=.*)(?=.*)(?=.*[@#$%^&+=])*$

Это регулярное выражение прекрасно работает для меня.

Function myFunction() { var str = "c1TTTTaTTT@"; var patt = new RegExp("^.*(?=.{8,})(?=.*)(?=.*)(?=.*[@#$%^&+=])*$"); var res = patt.test(str); console.log("Is regular matches:", res); }

Просто мы можем сделать это, используя HTML5.

Используйте ниже код в атрибуте шаблона,

Pattern="(?=^.{8,}$)((?=.*\d)(?=.*\W+))(?![.\n])(?=.*)(?=.*).*$"

Он будет работать отлично.

Регулярные выражения не имеют оператора И, поэтому довольно сложно написать регулярное выражение, которое соответствует действительным паролям, когда действительность определена чем-то И что-то еще И что-то еще...

Но регулярные выражения имеют оператор OR, поэтому просто примените теорему ДеМоргана и напишите регулярное выражение, которое соответствует недопустимым паролям:

Все, что имеет менее восьми символов ИЛИ что-либо без цифр ИЛИ ничего, кроме прописных ИЛИ ИЛИ ничего, без строчных букв ИЛИ ничего, кроме специальных символов.

^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|*)$

Если что-то соответствует этому, то это неверный пароль.

Решение, которое я нашел в одном из предыдущих ответов:

Минимум 8 символов, по крайней мере, 1 алфавитный алфавит, 1 строчный алфавит, 1 номер и 1 специальный символ: «^ (? =. ) (? =. ) (? =. \ D) (? =. [ $ @ $!% ? &]) {8,} "

Не работает для меня, но следующая упрощенная версия и отлично работает (добавьте любой специальный символ, который вам нравится, я добавил здесь #) и добавьте правило числа так же, как и в случае с буквами:

"^(?=.*)(?=.*)(?=.*)(?=.*[$@$!%*?&]){8,}"

Я бы ответил Питеру Мортенсену, но у меня недостаточно репутации.

Его выражения идеально подходят для каждого из указанных минимальных требований. Проблема с его выражениями, которые не требуют специальных символов, заключается в том, что они также не имеют специальных символов, а также обеспечивают максимальные требования, которые я не верю в просьбу ОП. Обычно вы хотите, чтобы ваши пользователи сделали свой пароль столь же сильным, насколько они хотят; зачем ограничивать надежные пароли?

Итак, его «минимум восемь символов, хотя бы одно письмо и одно число»:

^(?=.*)(?=.*\d){8,}$

достигает минимального требования, но остальные символы могут быть только буквой и цифрами. Чтобы разрешить (но не требовать) специальные символы, вы должны использовать что-то вроде:

^(?=.*)(?=.*\d).{8,}$ чтобы разрешить любые символы

^(?=.*)(?=.*\d){8,}$ чтобы разрешить специальные специальные символы

Аналогично, «минимум восемь символов, по крайней мере одна заглавная буква, одна строчная буква и одно число:

^(?=.*)(?=.*)(?=.*\d){8,}$

соответствует этому минимальному требованию, но допускает только буквы и цифры. Использование:

^(?=.*)(?=.*)(?=.*\d).{8,}$ чтобы разрешить любые символы

^(?=.*)(?=.*)(?=.*\d){8,} чтобы разрешить специальные специальные символы.

Use the following Regex to satisfy the below conditions: Conditions: 1] Min 1 uppercase letter. 2] Min 1 lowercase letter. 3] Min 1 special character. 4] Min 1 number. 5] Min 8 characters. 6] Max 30 characters. Regex: /^(?=.*)(?=.*)(?=.*\d)(?=.*[#$@!%&*?]){8,30}$/

263 Swapnil Tatkondawar

Я хочу, чтобы регулярное выражение проверяло, что:

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

Это не может быть ваш старый пароль или содержать ваше имя пользователя, "password" или "websitename"

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

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

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

javascript regex asp.net

24 ответа

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

"^(?=.*)(?=.*\d){8,}$"

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

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

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

"^(?=.*)(?=.*)(?=.*\d){8,}$"

Минимум восемь символов, как минимум одна заглавная буква, одна строчная буква, одна цифра и один специальный символ:

$!%*?&]{8,}$"

Минимум восемь и максимум 10 символов, как минимум одна заглавная буква, одна строчная буква, одна цифра и один специальный символ:

"^(?=.*)(?=.*)(?=.*\d)(?=.*[@$!%*?&]) $!%*?&]{8,10}$"

Регулярные выражения не имеют оператора И, поэтому довольно сложно написать регулярное выражение, которое соответствует действительным паролям, когда действительность определяется чем-то И что-то еще И что-то еще...

Но регулярные выражения имеют оператор OR, поэтому просто примените теорему ДеМоргана и напишите регулярное выражение, которое соответствует недопустимым паролям:

Все, что содержит менее восьми символов ИЛИ ничего, без цифр ИЛИ , без прописных букв ИЛИ или ничего, кроме строчных ИЛИ ничего, у которого нет специальных символов.

^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|*)$

Если что-то соответствует этому, тогда это неверный пароль.

Просто небольшое улучшение для ответа @anubhava: поскольку специальный символ ограничен теми, что есть на клавиатуре, используйте его для любого специального символа:

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

Это регулярное выражение будет выполнять следующие правила:

  • Как минимум одна верхняя буква Английская буква
  • По крайней мере, одна строчная английская буква
  • Как минимум одна цифра
  • Как минимум один специальный символ
  • Минимум восемь в длину

У меня возникла трудность, следуя самым популярным ответам на мои обстоятельства. Например, моя проверка не срабатывала с такими символами, как; или [ . Меня не интересовали белые листинга моих специальных символов, поэтому я вместо этого использовал [^\w\s] как тест - просто поместил - совпадал с символами без слов (включая числовые) и без пробелов. Подводя итог, вот что сработало для меня...

  • не менее 8 символов
  • не менее 1 числовой символ
  • не менее 1 строчная буква
  • не менее 1 прописная буква
  • не менее 1 специальный символ
/^(?=.*?)(?=.*?)(?=.*?)(?=.*?[^\w\s]).{8,}$/

Я бы ответил Петру Мортенсену, но мне не хватает репутации.

Его выражения идеально подходят для каждого из указанных минимальных требований. Проблема с его выражениями, которые не требуют специальных символов, состоит в том, что они также НЕ ДОПУСКАЮТ специальных символов, поэтому они также обеспечивают максимальные требования, которые, как я полагаю, не запрошен OP. Обычно вы хотите, чтобы ваши пользователи делали свои пароли настолько надежными, насколько им хочется; зачем ограничивать надежные пароли?

Итак, его выражение "минимум восемь символов, хотя бы одна буква и одна цифра":

^(?=.*)(?=.*\d){8,}$

достигается минимальное требование, но остальные символы могут быть только буквой и цифрой. Чтобы разрешить (но не требовать) специальные символы, вы должны использовать что-то вроде:

^(?=.*)(?=.*\d).{8,}$ чтобы разрешить любые символы

^(?=\S*)(?=\S*)(?=\S*\d)(?=\S*[^\w\s])\S{8,}$

но он не принимает _ (подчеркивание) в качестве специального символа (например, Aa12345_).

Улучшенный это:

^(?=\S*)(?=\S*)(?=\S*\d)(?=\S*([^\w\s]|[_]))\S{8,}$

Используйте следующее регулярное выражение, чтобы выполнить следующие условия:

Conditions: 1] Min 1 special character. 2] Min 1 number. 3] Min 8 characters or More

gastroguru © 2017