Валидация телефонных номеров — это еще одна непростая задача, которая зависит от типа полученных данных. Наличие телефонных номеров, для которых требуется код города, или международных номеров, для которых требуется префикс, усложняет регулярное выражение, равно как и индивидуальные предпочтения, которые имеют люди при вводе телефонных номеров (некоторые используют тире или пробел, в то время как другие просто пишут всё слитно).
Ниже приведены несколько типов телефонных номеров, с которыми вы можете столкнуться на практике. Напишите одно регулярное выражение, которое будет соответствовать телефонному номеру и будет фиксировать правильный код города.
Задание | Текст | Результат | |
Захватить | 415-555-1234 | 415 | ![]() |
Захватить | 650-555-2345 | 650 | ![]() |
Захватить | (416)555-3456 | 416 | ![]() |
Захватить | 202 555 4567 | 202 | ![]() |
Захватить | 4035555678 | 403 | ![]() |
Захватить | 1 416 555 9292 | 416 | ![]() |
Решение | Чтобы получить код города из телефонного номера, мы можем просто захватить первые три цифры, используя выражение (\d{3}).
Однако, чтобы сопоставить полный номер телефона, мы должны использовать выражение 1?[\s-]?\(?(\d{3})\)?[\s-]?\d{3}[\s-]?\d{4}. Оно разбито на код страны |