Skip to content

Instantly share code, notes, and snippets.

@sup2007
Forked from fearrr/phone_regexp.md
Last active December 4, 2025 20:15
Show Gist options
  • Select an option

  • Save sup2007/d9faa2a3435b9617dfa6b7ae7c7097df to your computer and use it in GitHub Desktop.

Select an option

Save sup2007/d9faa2a3435b9617dfa6b7ae7c7097df to your computer and use it in GitHub Desktop.
Регулярное выражение для мобильных и городских номеров России и СНГ

Регулярное выражение для мобильных и городских телефонных номеров России и СНГ

Страны СНГ (2025):

  • Азербайджан +994
  • Армения +374
  • Грузия +995
  • Беларусь +375
  • Казахстан +7
  • Киргизия +996
  • Молдова +373
  • Россия +7
  • Таджикистан +992
  • Туркмения +993
  • Узбекистан +998

Пример номеров:

  • +7(999)000-00-00
  • 8 495 753 00 00
  • +7 84457 123 45
  • +79271234567
  • 89271234567
// javascript
/^((8|\+994|\+374|\+375|\+7|\+996|\+373|\+992|\+993\+998)[-\s]?)?\(?\d{3,5}\)?[-\s]?\d{1}[-\s]?\d{1}[-\s]?\d{1}[-\s]?\d{1}[-\s]?\d{1}(([-\s]?\d{1})?[-\s]?\d{1})?$/

regex101

Код страны (или «8»)

(8|(\+994|\+374|\+375|\+7|\+996|\+373|\+992|\+993|\+998))[-\s]?
  • ( ) – группа (захватывающая), чтобы можно было использовать ? после неё.
  • Внутри группы | означает «или» – это список альтернатив:
    • 8 – одна цифра «8» (обычно используется для российских локальных номеров).
    • \+994, \+374, – коды стран
  • После кода [- ]? – опциональный символ разделителя: может быть тире -, пробел , или ничего.
  • Весь блок () имеет ? после него, значит код страны может отсутствовать (полностью локальный номер).

Код города / области

\(?\d{3,5}\)?
  • \(? – необязательное открывающее скобка.
  • \d{3,5} – от 3 до 5 цифр (код города).
  • \)? – необязательная закрывающая скобка.
  • код города может быть в скобках (123) или без скобок 123.

Номер

\d{1}[-\s]?\d{1}[-\s]?\d{1}[-\s]?\d{1}[-\s]?\d{1}
  • \d{1} – одна цифра.
  • [-\s]? – после каждой цифры может стоять (или нет) пробел/тире.
  • Точно 5 раз – это минимум 5 цифр номера.

Плюс

  • (([- ]?\d{1})?[-\s]?\d{1})? - Необязательный блок из 1–2 цифр.
  • Внешняя группа имеет ?, значит весь блок может отсутствовать – тогда всего 5 цифр.
  • Если блок присутствует, то:
    • ([-\s]?\d{1})? – опциональная первая дополнительная цифра (может быть и без разделителя).
    • [-\s]?\d{1} – обязательная вторая дополнительная цифра.
  • В итоге, при наличии блока добавляется одна или две цифры, поэтому после кода города может быть 5 или 7 цифр.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment