Генератор и Валидатор Телефонских Бројева - Тест Бројеви за Било Коју Земљу
Генеришите важеће тест телефонске бројеве за САД, УК, Мексико, Индију. Креирајте мобилне или фиксне бројеве са одговарајућим форматирањем. Бесплатан алат за програмере који тестирају логику валидације.
Генератор и Валидатор Телефонских Бројева
Dokumentacija
Зашто је генерисање телефонских бројева важно
Тестирање логике валидације телефонских бројева може бити напорно. Потребни су вам реалистични бројеви који прате обрасце специфичне за земљу, али ручно стварање тест података је досадно и подложно грешкама. Овај алат решава тај проблем генеришући структурно исправне телефонске бројеве за више земаља - комплетне са одговарајућим позивним бројевима, мобилним префиксима и форматирањем.
Било да градите контакт формулар, тестирате SMS API или попуњавате развојну базу података, добићете бројеве који одговарају стварним форматима. Алат обрађује сложеност међународних стандарда (попут E.164) уз истовремено једноставно корисничко сучеље: одаберите земљу, изаберите мобилни или фиксни телефон и генеришите.
Шта чини овај алат другачијим од генератора случајних бројева? Поштује правила. Мексички мобилни бројеви добијају одговарајуће позивне бројеве (55 за Мексико Сити, 33 за Гвадалахару). Амерички бројеви избегавају неважеће обрасце попут почетка позивних бројева са 0 или 1. Британски мобилни бројеви почињу са 7. Ови детаљи су важни када тестирате логику валидације коју ће корисници сусрести у производњи.
Како ради генератор телефонских бројева
Иза једноставног интерфејса, генератор примењује правила специфична за земљу како би креирао важеће телефонске бројеве:
-
Избор земље и региона: Одаберите циљну земљу и регион. Ово одређује позивни број - на пример, одабир "CDMX" у Мексику аутоматски користи позивни број 55.
-
Логика типа броја: Мобилни и фиксни бројеви прате различите обрасце. У УК, мобилни бројеви почињу са 7, док фиксни користе географске кодове попут 20 за Лондон. Алат примењује одговарајући префикс на основу вашег избора.
-
Генерисање случајних цифара: За претплатничке бројеве, алат генерише случајне цифре унутар важећих опсега. Не важе све цифре свуда - амерички позивни бројеви не могу почети са 0 или 1, а одређени кодови су резервисани за услуге.
-
Примена формата: Бројеви се форматирају у складу са E.164 стандардима (међународни) или локалним конвенцијама. Мексички бројеви се појављују као "+52 55 1234 5678" међународно или "55 1234 5678" локално.
-
Валидација: Сваки генерисани број се проверава према regex обрасцима специфичним за ту земљу. Ово хвата структурне грешке пре приказивања броја.
Оно што нећете видети: Алат намерно избегава хитне бројеве (попут 911), тест опсеге и посебне сервисне кодове. Ово чини излаз безбеднијим за тестне средине где не желите да случајно активирате праве услуге.
Формула и алгоритми
Иако генерисање телефонских бројева може изгледати као једноставан случајан процес, правилна имплементација захтева разумевање математичких ограничења и образаца који чине телефонске бројеве важећим у различитим регионима.
Алгоритам генерисања случајних бројева
Основни алгоритам за генерисање важећег телефонског броја прати ову формулу:
Где:
- је комплетан телефонски број
- је позивни број земље (опционо за локални формат)
- је код области/региона
- је префикс (који може имати ограничења у зависности од типа броја)
- је број претплатника (случајне цифре)
Алгоритам валидације
Валидација телефонских бројева може се изразити као операција поклапања са регуларним изразом, која се математички може представити као:
1 & \text{ако } N \text{ одговара } R_c \\ 0 & \text{у супротном} \end{cases}$$ Где: - $V(N)$ је резултат валидације (1 за важећи, 0 за неважећи) - $N$ је телефонски број који се валидира - $R_c$ је шаблон регуларног израза за земљу $c$ ### Вероватноћа и дистрибуција Приликом генерисања случајних телефонских бројева, морамо узети у обзир важећи опсег цифара за сваку позицију. На пример, у САД, позивни бројеви области не могу почињати са 0 или 1 и не могу бити сервисни бројеви попут 911. Број могућих важећих телефонских бројева за земљу може се израчунати као: $$P_c = \prod_{i=1}^{n} d_i$$ Где: - $P_c$ је укупан број могућих важећих телефонских бројева за земљу $c$ - $n$ је број позиција у телефонском броју (искључујући позивни број земље) - $d_i$ је број важећих цифара за позицију $i$ На пример, за телефонске бројеве у САД (искључујући позивни број земље): - Прва цифра позивног броја области: 8 могућности (2-9) - Друга и трећа цифра позивног броја области: 10 могућности свака (0-9) - Седам цифара претплатника: 10 могућности свака (0-9) $$P_{US} = 8 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 \times 10 = 8 \times 10^9 = 8,000,000,000$$ Ово значи да постоји 8 милијарди могућих важећих телефонских бројева у САД, иако су многи резервисани или недодељени. ## Кључне карактеристике ### Подршка за више земаља са регионалном тачношћу Генеришите телефонске бројеве за четири главна тржишта: - **Мексико (+52)**: Регионални кодови за CDMX (55), Гвадалахара (33), Монтереј (81), Канкун (998) и друге - **Сједињене Државе (+1)**: Стандардни 10-цифрени формат са важећим позивним бројевима - **Уједињено Краљевство (+44)**: Географски кодови за Лондон (20), Манчестер (161) и мобилни (7xxx) - **Индија (+91)**: 10-цифрени мобилни бројеви са одговарајућим префиксима оператера (6/7/8/9) Сваки регион користи аутентичне позивне бројеве. Када одаберете "Мексико Сити", добијате 55 као позивни број - исти код који користе прави мексички бројеви. Ова тачност је важна приликом тестирања апликација које анализирају или валидирају бројеве. ### Пребацивање између међународног и локалног формата Пребацујте се између два стандардна приказа: - **Међународни (E.164)**: +52 55 1234 5678 - Користи се за API-је, базе података и глобалне системе - **Локални**: 55 1234 5678 - Начин на који корисници виде бројеве у својој земљи **Зашто је ово важно**: Ваша апликација може примити бројеве у било ком формату. Корисници у Мексику куцају локални формат, док међународни корисници укључују позивне бројеве земаља. Тестирање оба осигурава да ваша валидација обухвата стварне улазне податке. ### Диференцијација мобилних и фиксних бројева Генеришите мобилне или фиксне бројеве са одговарајућим префиксима: - **Мобилни**: Британски бројеви почињу са 7, у складу са Ofcom прописима - **Фиксни**: Географски кодови везани за одређене градове (Лондонски 20, Делхијски 11) Разлика је техничка, а не само козметичка. Мобилни и фиксни бројеви прате различите планове нумерисања унутар исте земље. Ваша логика валидације мора препознати обе врсте. ### Копирање једним кликом Кликните на дугме за копирање да бисте одмах додали генерисане бројеве у привремену меморију. Без ручног одабира или означавања - само кликните и налепите у ваше тест скрипте, SQL уметања или поља образаца. ## Стандарди формата телефонских бројева ### Разумевање E.164: Глобални стандард [E.164 стандард](https://www.itu.int/rec/T-REC-E.164/en), који одржава Међународна телекомуникациона унија, дефинише како телефонски бројеви функционишу глобално. Успостављен 1984. године и још увек у употреби, поставио је темељна правила: - **Максимално 15 цифара** укупно (укључујући позивни код земље) - **Префикс плус знака** (+) за међународни формат - **Без посебних знакова** у самом броју (размаци и цртице су само за приказ) Структура формата: +[позивни код земље] [национални број] Зашто је ово важно за програмере: Приликом чувања телефонских бројева у базама података, користите E.164 формат. Он је недвосмислен, разумљив и ради са било којим телекомуникационим API-јем. Број попут "+15551234567" је универзално разумљив, док "(555) 123-4567" захтева контекст да би се знало да је у питању амерички број. <svg width="600" height="200" xmlns="http://www.w3.org/2000/svg"> <title>Структура формата телефонског броја</title> <desc>Дијаграм који показује компоненте међународног формата телефонског броја</desc> <!-- Background --> <rect x="10" y="50" width="580" height="80" fill="#f8fafc" stroke="#64748b" strokeWidth="2" rx="5" /> <!-- Country Code Section --> <rect x="20" y="60" width="80" height="60" fill="#dbeafe" stroke="#3b82f6" strokeWidth="2" rx="5" /> <text x="60" y="95" fontFamily="Arial" fontSize="14" textAnchor="middle" fill="#1e40af">+52</text> <text x="60" y="115" fontFamily="Arial" fontSize="10" textAnchor="middle" fill="#1e40af">Позивни код</text> <!-- Area Code Section --> <rect x="110" y="60" width="80" height="60" fill="#e0f2fe" stroke="#0ea5e9" strokeWidth="2" rx="5" /> <text x="150" y="95" fontFamily="Arial" fontSize="14" textAnchor="middle" fill="#0369a1">55</text> <text x="150" y="115" fontFamily="Arial" fontSize="10" textAnchor="middle" fill="#0369a1">Позивни број области</text> <!-- First Part Section --> <rect x="200" y="60" width="120" height="60" fill="#f0fdfa" stroke="#14b8a6" strokeWidth="2" rx="5" /> <text x="260" y="95" fontFamily="Arial" fontSize="14" textAnchor="middle" fill="#0f766e">1234</text> <text x="260" y="115" fontFamily="Arial" fontSize="10" textAnchor="middle" fill="#0f766e">Претплатнички број (Део 1)</text> <!-- Second Part Section --> <rect x="330" y="60" width="120" height="60" fill="#ecfdf5" stroke="#10b981" strokeWidth="2" rx="5" /> <text x="390" y="95" fontFamily="Arial" fontSize="14" textAnchor="middle" fill="#047857">5678</text> <text x="390" y="115" fontFamily="Arial" fontSize="10" textAnchor="middle" fill="#047857">Претплатнички број (Део 2)</text> <!-- Arrows --> <line x1="100" y1="90" x2="110" y2="90" stroke="#64748b" strokeWidth="2" /> <line x1="190" y1="90" x2="200" y2="90" stroke="#64748b" strokeWidth="2" /> <line x1="320" y1="90" x2="330" y2="90" stroke="#64748b" strokeWidth="2" /> <!-- Title --> <text x="300" y="30" fontFamily="Arial" fontSize="16" fontWeight="bold" textAnchor="middle" fill="#334155">Међународни формат телефонског броја (Пример за Мексико)</text> </svg> ### Формати специфични за земље #### Мексико (+52) Телефонски систем Мексика прати следеће обрасце: - **Мобилни бројеви**: 10 цифара укупно - Формат: +52 XX XXXX XXXX - Пример: +52 55 1234 5678 - Мобилни бројеви у Мексику типично почињу позивним бројевима попут 55 (Мексико Сити), 33 (Гвадалахара), 81 (Монтереј) - **Бројеви фиксних телефона**: 8 цифара (плус 2-цифрени позивни број) - Формат: +52 XX XXXX XXXX - Пример: +52 55 5123 4567 #### Сједињене Америчке Државе (+1) - **И мобилни и фиксни**: 10 цифара укупно - Формат: +1 XXX XXX XXXX - Позивни бројеви (прве 3 цифре) варирају по регионима - Мобилни и фиксни бројеви прате исти формат, али имају различите префиксе #### Уједињено Краљевство (+44) - **Мобилни бројеви**: Типично почињу са '7' - Формат: +44 7XXX XXXXXX - Пример: +44 7700 123456 - **Бројеви фиксних телефона**: Варирају по регионима - Формат: +44 XX XXXX XXXX или +44 XXX XXX XXXX - Пример: +44 20 1234 5678 (Лондон) #### Индија (+91) - **Мобилни бројеви**: 10 цифара, типично почињу са 6, 7, 8 или 9 - Формат: +91 XXXXX XXXXX - Пример: +91 98765 43210 - **Бројеви фиксних телефона**: Варирају по регионима, типично 8 цифара плус STD код - Формат: +91 XX XXXX XXXX - Пример: +91 11 2345 6789 (Делхи) ## Vodič za brzo pokretanje: Generišite svoj prvi test broj telefona ### Osnovno generisanje (Za manje od 10 sekundi) 1. **Odaberite državu** iz padajućeg menija: SAD (+1), UK (+44), Meksiko (+52) ili Indija (+91) 2. **Izaberite region** da biste dobili odgovarajući pozivni broj: - Meksiko: CDMX (55), Guadalajara (33), Monterrey (81) - SAD: Varira po državama - UK: London (20), Manchester (161) ili mobilni (7xxx) 3. **Uključite ili isključite mobilni ili fiksni telefon** u zavisnosti od onoga što testirate 4. **Odaberite format**: Međunarodni (+pozivni broj) ili lokalni 5. **Kliknite "Generiši"** i kopirajte rezultat ### Praktičan primer: Testiranje kontakt obrasca za meksičke korisnike Recimo da pravite registracioni obrazac za meksičke korisnike i treba da testirate validaciju broja telefona: **Za mobilne brojeve u Mexico Citiju:** - Država: "+52 Meksiko" - Region: "CDMX (Mexico City)" - Mobilni: Uključeno - Format: Međunarodni (za testiranje "+52" rukovanja) - Kliknite Generiši → Rezultat: "+52 55 8374 2916" **Za testiranje lokalnog formata:** - Zadržite iste postavke, isključite Međunarodni - Generiši → Rezultat: "55 8374 2916" Sada imate dva validna formata za testiranje kako vaš obrazac rukuje različitim obrascima. Provedite ove brojeve kroz validator da biste osigurali da prihvata oba obrasca. ## Примери имплементације Код испод показује како генерисати и валидирати телефонске бројеве на различитим језицима. Ови примери демонстрирају основну логику — у производњи, размотрите коришћење [libphonenumber](https://github.com/google/libphonenumber) за свеобухватну валидацију. ### JavaScript1// JavaScript пример генерисања случајног мексичког мобилног броја
2function generateMexicanMobileNumber(international = true) {
3 // Телефонски позивни број за Мексико Сити
4 const areaCode = "55";
5
6 // Генериши 8 случајних цифара за број
7 let number = "";
8 for (let i = 0; i < 8; i++) {
9 number += Math.floor(Math.random() * 10);
10 }
11
12 // Форматирај број
13 const formattedNumber = `${areaCode} ${number.substring(0, 4)} ${number.substring(4, 8)}`;
14
15 // Додај позивни број земље ако је затражен међународни формат
16 return international ? `+52 ${formattedNumber}` : formattedNumber;
17}
18
19// Функција за валидацију мексичког телефонског броја
20function validateMexicanPhoneNumber(number) {
21 // Образац за међународни формат
22 const intlPattern = /^\+52 \d{2} \d{4} \d{4}$/;
23
24 // Образац за локални формат
25 const localPattern = /^\d{2} \d{4} \d{4}$/;
26
27 return intlPattern.test(number) || localPattern.test(number);
28}
29
30// Пример употребе
31const phoneNumber = generateMexicanMobileNumber();
32console.log(phoneNumber); // Пример: +52 55 1234 5678
33console.log(`Is valid: ${validateMexicanPhoneNumber(phoneNumber)}`); // Is valid: true
34Python
1# Python пример генерисања и валидације телефонског броја
2import random
3import re
4
5def generate_us_phone_number(international=True):
6 """Генериши случајан амерички телефонски број."""
7 # Генериши позивни број (избегавајући бројеве попут 911)
8 area_code = random.randint(200, 999)
9
10 # Генериши 7 случајних цифара за број
11 prefix = random.randint(200, 999)
12 line = random.randint(1000, 9999)
13
14 # Форматирај број
15 if international:
16 return f"+1 {area_code} {prefix} {line}"
17 else:
18 return f"({area_code}) {prefix}-{line}"
19
20def validate_us_phone_number(number):
21 """Провери да ли низ одговара обрасцу америчког телефонског броја."""
22 # Образац за међународни формат
23 intl_pattern = r'^\+1 \d{3} \d{3} \d{4}$'
24
25 # Образац за локални формат
26 local_pattern = r'^\(\d{3}\) \d{3}-\d{4}$'
27
28 return bool(re.match(intl_pattern, number) or re.match(local_pattern, number))
29
30# Пример употребе
31phone = generate_us_phone_number()
32print(phone) # Пример: +1 555 123 4567
33print(f"Is valid: {validate_us_phone_number(phone)}") # Is valid: True
34Java
1import java.util.Random;
2import java.util.regex.Pattern;
3
4public class PhoneNumberGenerator {
5 private static final Random random = new Random();
6
7 public static String generateUKMobileNumber(boolean international) {
8 // Британски мобилни бројеви почињу са '7'
9 StringBuilder number = new StringBuilder("7");
10
11 // Генериши још 9 случајних цифара
12 for (int i = 0; i < 9; i++) {
13 number.append(random.nextInt(10));
14 }
15
16 // Форматирај број
17 String formatted = number.substring(0, 4) + " " + number.substring(4, 10);
18
19 // Додај позивни број земље ако је затражен међународни формат
20 return international ? "+44 " + formatted : "0" + formatted;
21 }
22
23 public static boolean validateUKMobileNumber(String number) {
24 // Образац за међународни формат
25 Pattern intlPattern = Pattern.compile("^\\+44 7\\d{3} \\d{6}$");
26
27 // Образац за локални формат
28 Pattern localPattern = Pattern.compile("^07\\d{3} \\d{6}$");
29
30 return intlPattern.matcher(number).matches() ||
31 localPattern.matcher(number).matches();
32 }
33
34 public static void main(String[] args) {
35 String phoneNumber = generateUKMobileNumber(true);
36 System.out.println(phoneNumber); // Пример: +44 7123 456789
37 System.out.println("Is valid: " + validateUKMobileNumber(phoneNumber)); // Is valid: true
38 }
39}
40PHP
1<?php
2// PHP пример генерисања и валидације индијског мобилног броја
3
4function generateIndianMobileNumber($international = true) {
5 // Индијски мобилни бројеви почињу са 6, 7, 8, или 9
6 $prefixes = [6, 7, 8, 9];
7 $prefix = $prefixes[array_rand($prefixes)];
8
9 // Генериши још 9 случајних цифара
10 $number = $prefix;
11 for ($i = 0; $i < 9; $i++) {
12 $number .= rand(0, 9);
13 }
14
15 // Форматирај број
16 $formatted = substr($number, 0, 5) . " " . substr($number, 5, 5);
17
18 // Додај позивни број земље ако је затражен међународни формат
19 return $international ? "+91 " . $formatted : $formatted;
20}
21
22function validateIndianMobileNumber($number) {
23 // Образац за међународни формат
24 $intlPattern = '/^\+91 [6-9]\d{4} \d{5}$/';
25
26 // Образац за локални формат
27 $localPattern = '/^[6-9]\d{4} \d{5}$/';
28
29 return preg_match($intlPattern, $number) || preg_match($localPattern, $number);
30}
31
32// Пример употребе
33$phoneNumber = generateIndianMobileNumber();
34echo $phoneNumber . "\n"; // Пример: +91 98765 43210
35echo "Is valid: " . (validateIndianMobileNumber($phoneNumber) ? "true" : "false") . "\n"; // Is valid: true
36?>
37C#
1using System;
2using System.Text;
3using System.Text.RegularExpressions;
4
5public class PhoneNumberGenerator
6{
7 private static Random random = new Random();
8
9 public static string GenerateMexicanMobileNumber(bool international = true)
10 {
11 // Телефонски позивни број за Мексико Сити
12 string areaCode = "55";
13
14 // Генериши 8 случајних цифара за број
15 StringBuilder number = new StringBuilder();
16 for (int i = 0; i < 8; i++)
17 {
18 number.Append(random.Next(10));
19 }
20
21 // Форматирај број
22 string formattedNumber = $"{areaCode} {number.ToString(0, 4)} {number.ToString(4, 4)}";
23
24 // Додај позивни број земље ако је затражен међународни формат
25 return international ? $"+52 {formattedNumber}" : formattedNumber;
26 }
27
28 public static bool ValidateMexicanPhoneNumber(string number)
29 {
30 // Образац за међународни формат
31 Regex intlPattern = new Regex(@"^\+52 \d{2} \d{4} \d{4}$");
32
33 // Образац за локални формат
34 Regex localPattern = new Regex(@"^\d{2} \d{4} \d{4}$");
35
36 return intlPattern.IsMatch(number) || localPattern.IsMatch(number);
37 }
38
39 public static void Main()
40 {
41 string phoneNumber = GenerateMexicanMobileNumber();
42 Console.WriteLine(phoneNumber); // Пример: +52 55 1234 5678
43 Console.WriteLine($"Is valid: {ValidateMexicanPhoneNumber(phoneNumber)}"); // Is valid: True
44 }
45}
46Реални случајеви употребе за генерисање телефонских бројева
Тестирање логике валидације образаца
Приликом изградње образаца за регистрацију, потребно је проверити да ли валидација хвата неисправне бројеве без одбацивања важећих. Ево шта се типично дешава: програмери тестирају једноставним шаблонима попут "555-1234" или "123456789", који не откривају граничне случајеве.
Чест сценарио је међународна регистрација корисника. Ваш образац може савршено прихватати америчке бројеве, али може да затаји код британских бројева зато што нисте узели у обзир променљиву дужину географских кодова. Генерисањем бројева специфичних за земљу, можете открити ове проблеме пре него што их корисници пријаве.
Про савет: Генеришите 50-100 бројева за сваку земљу коју подржавате и пропустите их кроз свог валидатора. Брзо ћете открити празнине у вашим regex шаблонима.
Попуњавање развојних база података
Из мог искуства рада са великим скуповима података, реалистични тестни подаци праве огромну разлику у откривању UI грешака. Када ваша табела купаца има 10.000 уноса који сви приказују "555-5555", нећете приметити да телефонске колоне нису довољно широке за међународни формат "+44 7700 123456".
Шта добро функционише: Генеришите разноврсне бројеве (различите земље, мешавина мобилних/фиксних) који одговарају вашој производној дистрибуцији. Ако 70% ваших корисника долази из Мексика, направите 70% ваших тестних података мексичким бројевима. Ово открива проблеме са приказом, сортирањем и грешке у извозном форматирању које бисте иначе пропустили.
Тестирање API интеграције
Тестирање SMS или гласовних API-ја захтева телефонске бројеве, али не можете користити стварне податке о корисницима у развоју. Пружаоци услуга попут Twilija нуде тест бројеве, али они су ограничени. За свеобухватно тестирање - посебно ограничавање стопе, пакетну обраду и руковање грешкама - потребан вам је обим.
Честа грешка: тестирање само сопственим телефонским бројем. Ово неће открити проблеме са различитим форматима или међународним бројевима. Генеришите скуп бројева који одговарају вашим циљним тржиштима и открићете грешке у форматирању пре него што стигну до производње.
Образовне и демонстрационе средине
Приликом обуке особља у CRM системима или демонстрирања софтвера клијентима, потребни су вам подаци који изгледају стварно без откривања стварних информација о корисницима. Насумични бројеви попут "1234567890" изгледају лажно и подривају кредибилитет.
Оно што сам нашао корисним: Генеришите комплетне тестне скупове података са реалистичним именима, адресама и правилно форматираним телефонским бројевима за регионе које демонстрирате. Ово чини обуку ефективнијом јер одражава оно што ће корисници видети у производњи.
Поређење са алтернативним решењима
Гуглова библиотека libphonenumber
За валидацију у продукцији, Google's libphonenumber је zlatni standard. Покрива 200+ земаља, врши валидацију према стварним подацима оператера и парсира бројеве у различитим форматима. Међутим, дизајниран је за валидацију, а не за генерисање.
Када користити libphonenumber: Када треба да валидирате стварни кориснички унос у продукцији. Препознаје проблеме попут неважећих позивних бројева и неактивних бројева.
Када користити овај алат: Када вам требају тест подаци брзо, без постављања библиотеке. Наш алат генерише за секунде; интеграција libphonenumber-а траје сате.
Faker библиотеке и сетови за генерисање података
Алати попут Faker.js или Python-ове Faker библиотеке генеришу телефонске бројеве заједно са именима, адресама и другим лажним подацима. Одлични су за креирање комплетних корисничких профила.
Ограничење: Већина faker библиотека генерише бројеве који изгледају важећи, али не прате сва правила специфична за земљу. На пример, могу креирати UK бројеве који почињу са 8 (што нису важећи мобилни префикси).
Предност овог алата: Фокусирамо се специфично на правила телефонских бројева, обезбеђујући да генерисани бројеви тачно прате обрасце специфичне за земљу.
Тест бројеви телекомуникационих пружалаца услуга
Пружаоци попут Twilio и Vonage нуде тест телефонске бројеве за развој API-ја. Ово су стварни радни бројеви који не шаљу поруке нити обављају позиве.
Када користити тест бројеве провајдера: За тестирање од почетка до краја где треба да проверите слање порука или завршетак позива.
Када користити овај алат: За јединичне тестове, тестирање корисничког интерфејса и попуњавање базе података где вам требају обим и разноврсност без ограничења стопе API-ја или трошкова.
Историја формата и стандарда телефонских бројева
Еволуција формата и стандарда телефонских бројева је тесно повезана са развојем телекомуникационе технологије и инфраструктуре широм света.
Рани телефонски системи (1870-их-1950-их)
Када су телефонски системи први пут уведени крајем 19. века, телефонски бројеви су bili веома кратки, често само 2-4 цифре, јер је свaki град имаo сопствену независну телефонску централу. Оператери су ручно повезивали позиве физички прикључујући каблове на комутационе табле.
Како су телефонске мреже расле, бројеви су постајали дужи и уведени су позивни бројеви. Северноамерички план нумерисања (NANP) створен је 1947. године да успостави јединствен систем широм Сједињених Држава и Канаде, уводећи познати 3-3-4 цифарски формат (позивни број, код размене, претплатнички број).
Развој међународних стандарда (1960-их-1980-их)
Међународна телекомуникациона унија (ITU), основана 1865. године као Међународна телеграфска унија, почела је да развија међународне стандарде за телефонско нумерисање 1960-их. Ово је довело до стварања међународних позивних бројева и стандардизације међународних процедура позивања.
- године, ITU је увео Препоруку E.163, која је успоставила међународни план телефонског нумерисања. Касније је замењена Препоруком E.164 1984. године, која и даље остаје важећи стандард за међународно јавно телекомуникационо нумерисање.
Мобилна револуција (1990-их-2000-их)
Широка примена мобилних телефона 1990-их и 2000-их година створила је нове изазове за системе нумерисања. Многе земље су увеле специфичне префиксе или целе опсеге бројева посвећене мобилним телефонима. На пример, у Великој Британији, мобилни бројеви типично почињу са '07', док у Мексику мобилни бројеви задржавају исти формат као и фиксни телефони, али са различитим позивним бројевима.
Модерни стандарди и VoIP ера (2000-их-Данас)
Са порастом Voice over IP (VoIP) и интернет комуникације, формати телефонских бројева постали су флексибилнији. E.164 стандард је прилагођен да обухвати ове нове технологије, и многе земље су ревидирале своје планове нумерисања да створе већи капацитет.
Увођење преносивости бројева у многим земљама додатно је избрисало разлику између мобилних и фиксних бројева, пошто корисници сада могу да задрже своје бројеве при промени типа услуге.
Данас, формати телефонских бројева настављају да еволуирају, са неким земљама које разматрају укидање позивних бројева или интеграцију телефонских бројева са дигиталним идентитетима. Међутим, основна структура успостављена E.164 стандардом и даље остаје темељ глобалног телекомуникационог нумерисања.
Често постављана питања
Како да генеришем случајан телефонски број за тестирање?
Изаберите циљну земљу и регион из падајућих менија, укључите да ли желите формат мобилног или фиксног телефона и кликните на "Генериши телефонски број". Алат ствара структурно исправан број који прати правила форматирања те земље. Можете пребацивати између међународног формата (са +позивним бројем) и локалног формата.
За тестирање више сценарија, генеришите неколико бројева са различитим подешавањима - ово помаже да се открију грешке валидације које се појављују само са одређеним форматима.
Да ли су ово стварни телефонски бројеви који могу примати позиве или поруке?
Не. Генерисани бројеви прате исправне обрасце форматирања, али су насумично креирани и нису додељени стварним претплатницима. Они су дизајнирани за тестирање логике валидације, попуњавање база података и демонстрацију софтвера - не за стварне телекомуникације.
Важно: Никада не покушавајте стварне позиве или поруке на овим бројевима. Они могу припадати стварним особама или бити недодељени.
Која је разлика између међународног и локалног формата телефонског броја?
Међународни формат укључује позивни број са знаком плус: +52 55 1234 5678 (Мексико). Ово је E.164 стандард који се користи за глобалне телекомуникације.
Локални формат показује како бисте бирали унутар те земље: 55 1234 5678 (Мексико). Изоставља позивни број пошто домаћи позиви не захтевају његово навођење.
Приликом тестирања апликација које служе међународним корисницима, валидирајте оба формата. Корисници уносе бројеве неконзистентно - неки налепе "+1 555...", други куцају "(555)...". Робустан валидатор подржава оба.
Зашто различите земље имају различите формате телефонских бројева?
Свака земља је независно развила свој план нумерисања, под утицајем величине популације, географских подела и времена изградње телефонске инфраструктуре. САД су усвојиле North American Numbering Plan 1947. године са обрасцем од 3-3-4 цифре. Уједињено Краљевство користи променљиве географске кодове. Индија је стандардизовала 10-цифрене мобилне бројеве да би обухватила своју масивну популацију.
E.164 стандард Међународне телекомуникационе уније пружа оквир, али земље га различито примењују према својим потребама. Зато је валидација телефонских бројева компликована - не можете користити један regex образац за све земље.
Да ли могу користити генерисане телефонске бројеве у мојој продукционој апликацији?
Користите их само за развој и тестирање. Не чувајте их као стварне корисничке податке у продукционим базама. Ево зашто:
- Могу случајно одговарати стварним додељеним бројевима
- Неће примати кодове за потврду или позиве
- Корисници ће бити збуњени ако виде ове бројеве у профилима налога
За продукционо тестирање (попут staging окружења), користите посебне тест бројеве од вашег SMS или гласовног провајдера.
Како функционише валидација телефонских бројева?
Валидација проверава структурну исправност користећи правила специфична за земљу:
- Провера дужине: амерички бројеви морају имати 10 цифара, британски мобилни 10-11 цифара
- Провера префикса: британски мобилни почињу са 7, мексички мобилни користе специфичне позивне кодове
- Упаривање образаца: regex обрасци обезбеђују исправно груписање и формат
Шта валидација не ради: не утврђује да ли је број тренутно у употреби, не идентификује оператера, нити проверава може ли примати поруке. За то су потребне услуге попут Twilio Lookup API или интеграција libphonenumber.
Да ли овај алат чува или складишти генерисане телефонске бројеве?
Не. Сва генерисања се одвијају у вашем прегледачу. Ништа се не шаље на сервер нити било где складишти. Када генеришете број, он постоји само у вашој текућој сесији. Освежите страницу и нестаје.
Ово чини алат безбедним за рад са тест подацима у сигурним окружењима где не можете слати информације externally.
Како да валидирам телефонске бројеве у сопственом коду?
Примери имплементације изнад показују обрасце валидације за различите језике. Основни приступ:
- Дефинишите regex обрасце за сваку земљу коју подржавате
- Нормализујте улаз (уклоните размаке, заграде, цртице)
- Проверите да ли очишћени број одговара вашим обрасцима
- Размислите о коришћењу libphonenumber за продукцију - боље рукује ивичним случајевима него прилагођени regex
Уобичајена грешка: Валидирати формат, али не нормализовати улаз прво. Корисници уносе "+1 (555) 123-4567", "1-555-123-4567" и "15551234567" очекујући да sve функционишу. Ваш валидатор треба да подржи све варијанте.
Reference
-
Međunarodna telekomunikaciona unija (ITU). "E.164: Međunarodni javni telekomunikacioni plan numeracije." ITU
-
Administracija za numerisanje Severne Amerike. "O Planu numeracije Severne Amerike." NANPA
-
Ofcom (UK). "Telefonski brojevi - Nacionalni plan numeracije telefona." Ofcom
-
Ministarstvo telekomunikacija, Vlada Indije. "Nacionalni plan numeracije." DoT Indija
-
Savezni institut za telekomunikacije (Meksiko). "Nacionalni plan numeracije." IFT Meksiko
-
Google-ova biblioteka libphonenumber. "Parsiranje, formatiranje i validacija telefonskih brojeva." GitHub Repository
-
Svetski vodič za numeraciju telefona. "Međunarodni pozivni kodovi i informacije." WTNG
Почните да генеришете тест телефонске бројеве
Требате валидне телефонске бројеве за вашу следећу тест сесију? Одаберите земљу, изаберите мобилни или фиксни телефон и генеришите правилно форматиране бројеве који прате стварне обрасце. Алат обрађује сложеност међународних стандарда, уз једноставан интерфејс - без налога, без API кључева, само тренутни резултати.
Савршено за програмере који тестирају логику валидације, QA тимове који попуњавају тест окружења или било кога коме требају реалистични примери телефонских бројева.