Перейти к содержимому

JavaScript регулярные выражения (ИЛИ)

Регулярные выражения (RegEx) в JavaScript обладают мощными возможностями для поиска шаблонов в строках. Одним из ключевых компонентов RegEx является оператор ИЛИ, обозначаемый вертикальной чертой (|). Этот оператор позволяет включать несколько шаблонов в одно регулярное выражение, обеспечивая гибкий и эффективный поиск и обработку строк. В этом подробном руководстве мы рассмотрим использование оператора ИЛИ в регулярных выражениях JavaScript на практических примерах.

Понимание оператора ИЛИ (|) в регулярных выражениях

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

Основное использование оператора ИЛИ

Синтаксис оператора ИЛИ прост. Он заключается в размещении символа | между шаблонами, которые нужно сопоставить.


Output appears here after Run.

В этом примере шаблон /cat|dog/ находит как "cat", так и "dog" в указанных строках.

Группировка с помощью круглых скобок

Круглые скобки () используются для группировки частей регулярного выражения (подробнее о группах см. Группы захвата). Это полезно, когда нужно применить оператор ИЛИ к нескольким символам или шаблонам.


Output appears here after Run.

Здесь шаблон /(cat|dog)s?/ находит "cat", "cats", "dog" и "dogs".

Практические примеры

Поиск файлов с разными расширениями

Предположим, вам нужно проверить имена файлов с разными расширениями, такими как .jpg, .png или .gif.


Output appears here after Run.

В этом примере шаблон /\.(jpg|png|gif)$/ находит имена файлов, заканчивающиеся на ".jpg", ".png" или ".gif".

Проверка номеров телефонов

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


Output appears here after Run.

Шаблон /(\+\d{1,2}\s?)?(\(\d{3}\)|\d{3})[-.\s]?\d{3}[-.\s]?\d{4}/ находит различные форматы номеров телефонов, включая номера с кодами стран, скобками, дефисами, точками и пробелами.

Поиск необязательных подшаблонов

Оператор ИЛИ также можно использовать для поиска необязательных подшаблонов внутри строки.


Output appears here after Run.

Здесь шаблон /color|colour/ находит как американское, так и британское написание слова "color".

Комбинирование оператора ИЛИ с другими метасимволами

Возможности оператора ИЛИ расширяются при его комбинировании с другими метасимволами регулярных выражений, такими как * (ноль или более), + (один или более), ? (ноль или один) и {} (ровно n раз).

Пример с квантификаторами


Output appears here after Run.

Шаблон /\b(cat|dog)s?\b/ находит "cat", "cats", "dog" и "dogs" как целые слова, используя метасимвол границы слова \b.

Расширенный пример с несколькими условиями


Output appears here after Run.

В этом примере шаблон /(\d{1,2}-\d{1,2}-\d{4})|(\d{4}-\d{1,2}-\d{1,2})/ находит даты в форматах "MM-DD-YYYY" и "YYYY-MM-DD".

Заключение

Освоение оператора ИЛИ в регулярных выражениях JavaScript открывает широкие возможности для эффективного и гибкого поиска шаблонов. Понимание того, как использовать оператор ИЛИ в сочетании с другими функциями RegEx, позволяет создавать мощные и адаптивные шаблоны для решения сложных задач поиска и обработки строк.

Практика

Какое из следующих регулярных выражений правильно использует оператор ИЛИ (|) для поиска слов 'cat' или 'dog'?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.