Генератор и валидатор на телефонни номера - Тестови номера за всяка страна
Генерирайте валидни тестови телефонни номера за САЩ, Великобритания, Мексико, Индия. Създавайте мобилни или стационарни номера с правилно форматиране. Безплатен инструмент за разработчици, тестващи логика за валидация.
Генератор и валидатор на телефонни номера
Документация
Какво представлява генераторът и валидаторът на телефонни номера?
Генераторът на телефонни номера създава номера, които следват правилата за форматиране на реална държава, без да принадлежат на реален абонат. Този инструмент генерира тестови телефонни номера за Съединените щати, Обединеното кралство, Мексико и Индия. Той може да създаде мобилен или стационарен номер в местен формат или в международен формат 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 обработва много повече крайни случаи от ръчно написан регулярен израз.