Regex для номера телефона США

Используйте /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/, чтобы проверить, что вся строка является корректным номером телефона США. Каждый пример ниже проверен по этому шаблону, а открыть его в Regex Tester можно с уже загруженными образцами.

Обновлено

/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/
Открыть в Regex Tester
Входные данныеРезультатГруппы
(212) 555-0123✓ Совпадение212 555 0123
212-555-0123✓ Совпадение212 555 0123
+1 415.555.0199✓ Совпадение415 555 0199
4155550199✓ Совпадение415 555 0199
123-456-7890✗ Нет совпадения
555-1234✗ Нет совпадения
(212) 555-01234✗ Нет совпадения
+44 20 7183 8750✗ Нет совпадения

Как работает шаблон

ЧастьЗначение
(?:\+1[-. ]?)?Необязательный код страны +1, за которым следует необязательный разделитель
\(?([2-9]\d{2})\)?Код области (группа 1), может быть указан в скобках; не может начинаться с 0 или 1
[-. ]?Необязательный дефис, точка или пробел
(\d{3})Код АТС (группа 2)
(\d{4})Номер абонентской линии (группа 3)

Примеры кода

JavaScript

const re = /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})', value))

PHP

preg_match('/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/', $value) === 1;

Примечания и ограничения

Три группы позволяют привести любой допустимый формат к единому виду, например к ($1) $2-$3. Для международных номеров храните их в формате E.164 и используйте библиотеку вроде libphonenumber для полноценной проверки.

Часто задаваемые вопросы

Какой regex используется для номера телефона США?
/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/ — он проверяет всю строку. Что делает каждая часть, см. в таблице выше.
Какие примеры подходят?
Из проверенных примеров подходят: (212) 555-0123, 212-555-0123, +1 415.555.0199, 4155550199. Остальные не подходят.
Как протестировать этот regex?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и примеры текста загрузятся автоматически, а совпадения будут подсвечиваться при редактировании.