Регулярные выражения: Объединение условий

Рейтинг: -1Ответов: 1Опубликовано: 02.02.2023

Мне нужна ваша помощь. Я новичок в работе с регулярными выражениями. У меня есть три отдельных регулярных выражения.

  1. Только символы: /^[!@#$%^&*]+$/
  2. Только числа: /^\d+$/
  3. Только буквы: /^[a-zA-Z]+$/

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

Ответы

▲ 0

Их можно объединить при помощи логического ИЛИ |:

/^([!@#$%^&*]+|\d+|[a-zA-Z]+)$/

Пример на regex101 -- выполняется какое-либо одно из условий -- только символы, только цифры или только буквы.


Если нужно проверить, чтобы были как минимум одна буква, одна цифра и один символ, следует применить позитивный просмотр вперёд (positive lookahead) (?=), тогда минимальная возможная длина будет 3 символа:

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

В простейшем случае объединение может подразумевать, что должен быть один любой символ:

/^[\dA-Za-z!@#$%^&*]+$/