Что такое регулярное выражение, чтобы убедиться, что данная строка содержит хотя бы один символ из каждой из следующих категорий.
- Строчные буквы
- Прописная буква
- цифра
- Условное обозначение
Я знаю , что шаблоны для отдельных наборов , а именно [a-z]
, [A-Z]
, \d
и _|[^\w]
(я получил их исправить, не так ли?).
Но как мне объединить их, чтобы убедиться, что строка содержит все это в любом порядке?
Ответы:
Если вам нужно одно регулярное выражение, попробуйте:
Краткое объяснение:
И я согласен с SilentGhost,
\W
может быть немного шире. Я бы заменил его набором символов следующим образом:[-+_!@#$%^&*.,?]
(не стесняйтесь добавлять больше, конечно!)источник
.+
на.*
? Я не смог придумать тестовый пример, который не удался.*
. Они одинаковы в этом контексте? «Ноль или более символов», кажется, хорошо - просто ищет подтверждения..+
в.*
или даже.{4,}
по этому вопросу.^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?!.*[&%$]).{6,}$
Барт Киерс, у твоего регулярного выражения есть пара проблем. Лучший способ сделать это это:
Таким образом, вы ищете независимо от того, в начале, в конце или в середине. У тебя много проблем со сложными паролями.
источник
Вы можете сопоставить эти три группы отдельно и убедиться, что все они присутствуют. Кроме того, это
[^\w]
кажется слишком широким, но если это то, что вы хотите, вы можете заменить его\W
.источник
\W
и[\W]
результат тот же.