Генератор и валидатор телефонных номеров - Тестовые номера для любой страны
Генерируйте валидные тестовые телефонные номера для США, Великобритании, Мексики, Индии. Создавайте мобильные или стационарные номера с правильным форматированием. Бесплатный инструмент для разработчиков, тестирующих логику валидации.
Генератор и валидатор номеров телефонов
Документация
Что такое генератор и валидатор телефонных номеров?
Генератор телефонных номеров создаёт номера, соответствующие правилам форматирования реальной страны, но не принадлежащие ни одному реальному абоненту. Этот инструмент генерирует тестовые телефонные номера для США, Великобритании, Мексики и Индии. Он может создавать мобильный или стационарный номер в местном формате или международном формате E.164 и проверяет результат на соответствие правилам нумерации этой страны. Инструмент предназначен для тестирования программного обеспечения, а не для реальных звонков или текстовых сообщений.
Как генератор формирует номер
Каждый создаваемый инструментом номер состоит из двух частей: фиксированного кода зоны и блока случайных цифр.
-
Страна и регион. Для каждой поддерживаемой страны указаны четыре примерных региона (например, в США: Нью-Йорк, Калифорния, Техас и Флорида). Каждому региону соответствует один реальный код зоны, поэтому выбор «Калифорния» всегда даёт код зоны 213, а выбор «Нью-Йорк» — 212.
-
Мобильный или стационарный номер. В Великобритании и Индии для мобильных и стационарных номеров используются разные префиксы. В США и Мексике этот инструмент использует один и тот же набор кодов зон для обоих типов, поскольку не моделирует отдельный диапазон только для мобильных номеров в этих двух странах.
-
Случайные цифры. Инструмент заполняет оставшуюся часть номера случайными цифрами до фиксированной общей длины в 10 цифр. Формула проста:
случайные цифры = 10 − длина кода зоны
Для мексиканского кода зоны из 2 цифр, например 55, это 8 случайных цифр. Для американского кода зоны из 3 цифр, например 213, это 7 случайных цифр.
-
Исключение для США. Номера США соответствуют Североамериканскому плану нумерации (NANP). После кода зоны из 3 цифр следующие 3 цифры (код обмена) должны начинаться с цифры от 2 до 9 и не могут быть кодом службы, например 911 или 411. Инструмент обеспечивает это, заново генерируя эти 3 цифры, пока они не пройдут проверку, а затем добавляет ещё 4 случайных цифры для номера линии.
-
Форматирование. Готовые цифры группируются, а при выборе международного формата перед ними ставятся знак плюса и код страны в соответствии с шаблоном E.164.
Поддерживаемые страны и коды зон
| Страна | Примерные регионы и соответствующие фиксированные коды зон | Общее количество цифр | Правило префикса мобильного номера |
|---|---|---|---|
| США (+1) | Нью-Йорк 212, Калифорния 213, Техас 214, Флорида 305 | 10 | Те же коды, что и для стационарных номеров |
| Великобритания (+44) | Лондон 20, Манчестер 161, Бирмингем 121, Глазго 141 (стационарные); для мобильных используются 7700–7703 | 10 | Начинается с 7 |
| Мексика (+52) | Мехико 55, Гвадалахара 33, Монтеррей 81, Канкун 998 | 10 | Те же коды, что и для стационарных номеров |
| Индия (+91) | Дели 11, Мумбаи 22, Бангалор 80, Ченнаи 44 (стационарные); для мобильных используется одна из цифр 6, 7, 8, 9 | 10 | Начинается с 6, 7, 8 или 9 |
Все четыре страны в этом инструменте используют национальный номер из 10 цифр. Это соответствует реальной практике в США и Индии и является упрощением для Великобритании и Мексики, где реальные планы нумерации допускают некоторые варианты.
мобильный номер в Мехико
- Страна: Мексика (+52). Регион: Мехико, которому соответствует код зоны 55.
- Тип номера: мобильный. Мобильные префиксы в Мексике совпадают со стационарными, поэтому префикс по-прежнему равен 55.
- Необходимое количество случайных цифр: 10 − 2 = 8. Предположим, инструмент сгенерировал 12 345 678.
- Объединённые цифры: 5512345678.
- Группировка по мексиканскому формату (2-4-4 для кода зоны из 2 цифр): 55 1234 5678.
- В международном формате добавляется код страны: +52 55 1234 5678. В местном формате он опускается: 55 1234 5678.
номер США и правило NANP
- Страна: США (+1). Регион: Калифорния, которой соответствует код зоны 213.
- Необходимое количество случайных цифр: 10 − 3 = 7. Инструмент генерирует код обмена из 3 цифр, начинающийся с 2–9 и не являющийся кодом N11, а затем добавляет ещё 4 цифры. Предположим, он сгенерировал 555 и 0199.
- Объединённые цифры: 2135550199.
- Группировка по формату NANP 3-3-4: 213 555 0199.
- Международный формат: +1 213 555 0199.
Поскольку при генерации соблюдается правило для кода станции, этот номер всегда проходит собственную проверку инструмента.
E.164: международный формат
E.164 — это стандарт нумерации, установленный Международным союзом электросвязи (ITU) в 1984 году. Он ограничивает длину телефонного номера 15 цифрами и требует ставить знак плюса перед кодом страны при записи номера для международного использования, например +52 55 1234 5678. Программы, в которых хранятся телефонные номера, обычно предпочитают E.164, поскольку этот формат устраняет неоднозначность: номер вроде +15551234567 самостоятельно указывает на страну, а локально записанный номер вроде (555) 123-4567 — нет.
Как работает проверка в этом инструменте
Нажатие кнопки «Сгенерировать» одновременно создаёт номер и проверяет его, показывая рядом отметку «действительный» или «недействительный». Проверка учитывает:
- Длина. Национальный номер должен содержать ровно 10 цифр, не считая код страны, если он записан в международном формате.
- Коды обмена и зоны в США. И код зоны из 3 цифр, и код обмена из 3 цифр должны начинаться с 2–9 и не должны быть кодом N11, например 911.
- Мобильные номера в Индии. Первая цифра должна быть 6, 7, 8 или 9.
- Мобильные номера в Великобритании. Номер должен начинаться с 7.
Поскольку генератор уже формирует номера по этим же правилам, недавно созданный номер обычно отображается как действительный. Проверка главным образом наглядно демонстрирует ту же логику, которую разработчик применил бы для проверки телефонных номеров, введённых реальными пользователями.
Часто задаваемые вопросы
Являются ли это реальными телефонными номерами, которые могут принимать звонки или сообщения? Нет. Они генерируются случайным образом и соответствуют правильному формату своей страны, но не закреплены ни за одним реальным абонентом. Они могут случайно совпасть с реальным номером, поэтому их не следует использовать для звонков или отправки сообщений.
В чём разница между международным и местным форматом? Международный формат начинается со знака плюса и кода страны, например +52 55 1234 5678. В местном формате код страны отсутствует, например 55 1234 5678, как при наборе номера внутри этой страны.
Почему номера США и Мексики не различают мобильные и стационарные номера, а номера Великобритании и Индии различают? Этот инструмент использует один и тот же список кодов зон для мобильных и стационарных номеров в США и Мексике, поэтому номер, сгенерированный как мобильный, и номер, сгенерированный как стационарный для того же региона, могут выглядеть одинаково. В Великобритании и Индии для мобильных и стационарных номеров используются отдельные списки префиксов, поэтому эти два типа выглядят по-разному.
Хранит ли этот инструмент созданные номера или отправляет их? Нет. Генерация и проверка выполняются в браузере. После закрытия страницы ничего не отправляется на сервер и не сохраняется.
Можно ли использовать сгенерированные номера в рабочем приложении? Их следует использовать только для разработки и тестирования. Это не проверенные рабочие номера, и их не следует хранить как реальные данные клиентов.
Как проверять телефонные номера в собственном коде? Для каждого формата страны задайте регулярное выражение, удаляйте из входных данных пробелы и знаки пунктуации, а затем сравнивайте результат с ожидаемой длиной и правилами префиксов, аналогично описанным выше проверкам. Для рабочих приложений, поддерживающих много стран, библиотека libphonenumber от Google обрабатывает гораздо больше особых случаев, чем написанное вручную регулярное выражение.