Generador i Validador de Números de Telèfon - Números de Prova per a Qualsevol País
Genera números de telèfon de prova vàlids per als EUA, Regne Unit, Mèxic, Índia. Crea números de mòbil o de línia fixa amb format adequat. Eina gratuïta per a desenvolupadors que proven lògiques de validació.
Generador i Validador de Números de Telèfon
Documentació
Per què importa la generació de números de telèfon
Provar la lògica de validació de telèfons pot ser frustrant. Necessiteu números realistes que segueixin patrons específics de cada país, però crear manualment dades de proves és tediós i propens a errors. Aquesta eina resol aquest problema generant números de telèfon estructuralment vàlids per a múltiples països, amb codis d'àrea, prefixos mòbils i format adequats.
Tant si esteu construint un formulari de contacte, provant una API SMS o omplint una base de dades de desenvolupament, obtindreu números que coincideixen amb formats del món real. L'eina gestiona la complexitat dels estàndards internacionals (com E.164) mantenint una interfície simple: trieu un país, seleccioneu mòbil o línia fixa, i genereu.
Què fa que sigui diferent dels generadors de dígits aleatoris? Respecta les regles. Els números mòbils mexicans obtenen codis d'àrea propis (55 per a Ciutat de Mèxic, 33 per a Guadalajara). Els números dels EUA eviten patrons no vàlids com iniciar codis d'àrea amb 0 o 1. Els números mòbils del Regne Unit comencen amb 7. Aquests detalls importen quan es prova la lògica de validació que els usuaris trobaran en producció.
Com funciona el generador de números de telèfon
Darrere de la interfície simple, el generador aplica regles específiques de cada país per crear números de telèfon vàlids:
-
Selecció de país i regió: Trieu el país i la regió de destinació. Això determina el codi d'àrea; per exemple, seleccionar "CDMX" a Mèxic utilitza automàticament el codi d'àrea 55.
-
Lògica de tipus de número: Els números de mòbil i línia fixa segueixen patrons diferents. Al Regne Unit, els mòbils comencen amb 7, mentre que les línies fixes utilitzen codis geogràfics com 20 per a Londres. L'eina aplica el prefix correcte en funció de la vostra selecció.
-
Generació de dígits aleatoris: Per als números d'subscriptor, l'eina genera dígits aleatoris dins de rangs vàlids. No tots els dígits funcionen a tot arreu; els codis d'àrea dels EUA no poden començar amb 0 o 1, i alguns codis estan reservats per a serveis.
-
Aplicació de format: Els números es formategen d'acord amb els estàndards E.164 (internacional) o les convencions locals. Els números mexicans apareixen com "+52 55 1234 5678" internacionalment o "55 1234 5678" localment.
-
Validació: Cada número generat es comprova amb patrons regex específics de cada país. Això detecta errors estructurals abans de mostrar el número.
El que no veureu: L'eina evita deliberadament els números d'emergència (com 911), rangs de proves i codis de serveis especials. Això fa que la sortida sigui més segura per a entorns de proves on no voleu activar accidentalment serveis reals.
Fórmula i Algoritmes
Mentre que la generació de números de telèfon pot semblar un procés aleatori simple, implementar-lo correctament requereix comprendre les restriccions matemàtiques i els patrons que fan que els números de telèfon siguin vàlids en diferents regions.
Algoritme de Generació de Números Aleatoris
L'algoritme bàsic per generar un número de telèfon vàlid segueix aquesta fórmula:
On:
- és el número de telèfon complet
- és el codi de país (opcional per al format local)
- és el codi d'àrea/regió
- és el prefix (que pot tenir restriccions basades en el tipus de número)
- és el número de subscriptor (dígits aleatoris)
Algoritme de Validació
La validació de números de telèfon es pot expressar com una operació de coincidència de patró d'expressió regular, que es pot representar matemàticament com:
undefined1// Exemple de JavaScript per generar un número de mòbil mexicà aleatori
2function generateMexicanMobileNumber(international = true) {
3 // Codi d'àrea de la Ciutat de Mèxic
4 const areaCode = "55";
5
6 // Generar 8 dígits aleatoris per al número
7 let number = "";
8 for (let i = 0; i < 8; i++) {
9 number += Math.floor(Math.random() * 10);
10 }
11
12 // Formatar el número
13 const formattedNumber = `${areaCode} ${number.substring(0, 4)} ${number.substring(4, 8)}`;
14
15 // Afegir codi de país si es sol·licita format internacional
16 return international ? `+52 ${formattedNumber}` : formattedNumber;
17}
18
19// Funció per validar un número de telèfon mexicà
20function validateMexicanPhoneNumber(number) {
21 // Patró per al format internacional
22 const intlPattern = /^\+52 \d{2} \d{4} \d{4}$/;
23
24 // Patró per al format local
25 const localPattern = /^\d{2} \d{4} \d{4}$/;
26
27 return intlPattern.test(number) || localPattern.test(number);
28}
29
30// Exemple d'ús
31const phoneNumber = generateMexicanMobileNumber();
32console.log(phoneNumber); // Exemple: +52 55 1234 5678
33console.log(`És vàlid: ${validateMexicanPhoneNumber(phoneNumber)}`); // És vàlid: true
34Python
1# Exemple de Python per generar i validar un número de telèfon
2import random
3import re
4
5def generate_us_phone_number(international=True):
6 """Generar un número de telèfon dels EUA aleatori."""
7 # Generar codi d'àrea (evitant codis com 911)
8 area_code = random.randint(200, 999)
9
10 # Generar 7 dígits aleatoris per al número
11 prefix = random.randint(200, 999)
12 line = random.randint(1000, 9999)
13
14 # Formatar el número
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 """Validar si una cadena coincideix amb el patró de número de telèfon dels EUA."""
22 # Patró per al format internacional
23 intl_pattern = r'^\+1 \d{3} \d{3} \d{4}$'
24
25 # Patró per al format local
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# Exemple d'ús
31phone = generate_us_phone_number()
32print(phone) # Exemple: +1 555 123 4567
33print(f"És vàlid: {validate_us_phone_number(phone)}") # És vàlid: 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 // Els números de mòbil del Regne Unit comencen amb '7'
9 StringBuilder number = new StringBuilder("7");
10
11 // Generar 9 dígits aleatoris més
12 for (int i = 0; i < 9; i++) {
13 number.append(random.nextInt(10));
14 }
15
16 // Formatar el número
17 String formatted = number.substring(0, 4) + " " + number.substring(4, 10);
18
19 // Afegir codi de país si es sol·licita format internacional
20 return international ? "+44 " + formatted : "0" + formatted;
21 }
22
23 public static boolean validateUKMobileNumber(String number) {
24 // Patró per al format internacional
25 Pattern intlPattern = Pattern.compile("^\\+44 7\\d{3} \\d{6}$");
26
27 // Patró per al format local
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); // Exemple: +44 7123 456789
37 System.out.println("És vàlid: " + validateUKMobileNumber(phoneNumber)); // És vàlid: true
38 }
39}
40PHP
1<?php
2// Exemple de PHP per generar i validar un número de mòbil indi
3
4function generateIndianMobileNumber($international = true) {
5 // Els números de mòbil indis comencen amb 6, 7, 8 o 9
6 $prefixes = [6, 7, 8, 9];
7 $prefix = $prefixes[array_rand($prefixes)];
8
9 // Generar 9 dígits aleatoris més
10 $number = $prefix;
11 for ($i = 0; $i < 9; $i++) {
12 $number .= rand(0, 9);
13 }
14
15 // Formatar el número
16 $formatted = substr($number, 0, 5) . " " . substr($number, 5, 5);
17
18 // Afegir codi de país si es sol·licita format internacional
19 return $international ? "+91 " . $formatted : $formatted;
20}
21
22function validateIndianMobileNumber($number) {
23 // Patró per al format internacional
24 $intlPattern = '/^\+91 [6-9]\d{4} \d{5}$/';
25
26 // Patró per al format local
27 $localPattern = '/^[6-9]\d{4} \d{5}$/';
28
29 return preg_match($intlPattern, $number) || preg_match($localPattern, $number);
30}
31
32// Exemple d'ús
33$phoneNumber = generateIndianMobileNumber();
34echo $phoneNumber . "\n"; // Exemple: +91 98765 43210
35echo "És vàlid: " . (validateIndianMobileNumber($phoneNumber) ? "true" : "false") . "\n"; // És vàlid: 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 // Codi d'àrea de la Ciutat de Mèxic
12 string areaCode = "55";
13
14 // Generar 8 dígits aleatoris per al número
15 StringBuilder number = new StringBuilder();
16 for (int i = 0; i < 8; i++)
17 {
18 number.Append(random.Next(10));
19 }
20
21 // Formatar el número
22 string formattedNumber = $"{areaCode} {number.ToString(0, 4)} {number.ToString(4, 4)}";
23
24 // Afegir codi de país si es sol·licita format internacional
25 return international ? $"+52 {formattedNumber}" : formattedNumber;
26 }
27
28 public static bool ValidateMexicanPhoneNumber(string number)
29 {
30 // Patró per al format internacional
31 Regex intlPattern = new Regex(@"^\+52 \d{2} \d{4} \d{4}$");
32
33 // Patró per al format local
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); // Exemple: +52 55 1234 5678
43 Console.WriteLine($"És vàlid: {ValidateMexicanPhoneNumber(phoneNumber)}"); // És vàlid: True
44 }
45}
46Casos d'Ús Reals per a la Generació de Números de Telèfon
Proves de Lògica de Validació de Formularis
Quan es construeixen formularis de registre, cal verificar que la validació capturi números mal formats sense rebutjar els vàlids. Normalment passa el següent: els desenvolupadors proven amb patrons simples com "555-1234" o "123456789", que no revelen casos extrems.
Un escenari comú és el registre d'usuaris internacionals. El vostre formulari pot acceptar números dels EUA perfectament, però fallar amb números del Regne Unit perquè no es va tenir en compte la longitud variable dels codis geogràfics. En generar números específics de cada país, podeu detectar aquests problemes abans que els usuaris els reportin.
Consell professional: Genereu 50-100 números per a cada país que doneu suport i passeu-los pel vostre validador. Ràpidament trobareu buits en els vostres patrons regex.
Omplir Bases de Dades de Desenvolupament
En la meva experiència treballant amb grans conjunts de dades, les dades de proves realistes fan una gran diferència per detectar errors d'interfície d'usuari. Quan la vostra taula de clients té 10.000 entrades que mostren totes "555-5555", no notareu que les columnes de telèfon no són prou amples per al format internacional "+44 7700 123456".
El que funciona bé: Genereu números diversos (barreja de països, mòbils/línia fixa) que coincideixin amb la vostra distribució de producció. Si el 70% dels vostres usuaris estan a Mèxic, feu que el 70% de les vostres dades de proves siguin números mexicans. Això revela problemes de visualització, problemes d'ordenació i errors de format d'exportació que d'altra manera passarien desapercebuts.
Proves d'Integració d'API
Les proves d'API de SMS o veu requereixen números de telèfon, però no podeu usar dades reals de clients en desenvolupament. Els proveïdors de serveis com Twilio ofereixen números de proves, però estan limitats. Per a proves exhaustives, especialment de limitació de taxes, processament per lots i gestió d'errors, necessiteu volum.
Un error freqüent: provar només amb el vostre propi número de telèfon. Això no revelarà problemes amb formats o números internacionals diferents. Genereu un conjunt de números que coincideixin amb els vostres mercats objectiu, i detectareu errors de format abans que arribin a producció.
Entorns Educatius i de Demostració
Quan es forma personal en sistemes CRM o es demostra programari a clients, cal tenir dades que semblin reals sense exposar informació real de clients. Números aleatoris com "1234567890" semblen falsos i comprometen la credibilitat.
El que he trobat útil: Genereu conjunts de dades de proves complets amb noms, adreces i números de telèfon formats adequadament per a les regions que esteu demostrant. Això fa que la formació sigui més efectiva perquè reflecteix el que els usuaris veuran en producció.
Comparació amb Solucions Alternatives
Biblioteca libphonenumber de Google
Per a la validació en producció, libphonenumber de Google és l'estàndard d'or. Gestiona més de 200 països, valida contra dades reals de proveïdors i analitza números en diversos formats. Tanmateix, està dissenyada per a validació, no per a generació.
Quan usar libphonenumber: Quan necessiteu validar entrada d'usuari real en producció. Detecta problemes com codis d'àrea invàlids i rangs de números desconnectats.
Quan usar aquesta eina: Quan necessiteu dades de prova ràpidament sense configurar una biblioteca. La nostra eina genera en segons; integrar libphonenumber porta hores.
Biblioteques Faker i Suites de Generació de Dades
Eines com Faker.js o la biblioteca Faker de Python generen números de telèfon juntament amb noms, adreces i altres dades falses. Són excel·lents per crear perfils d'usuari complets.
Limitació: La majoria de biblioteques faker generen números que semblen vàlids però que no segueixen totes les regles específiques de cada país. Per exemple, podrien crear números del Regne Unit que comencen amb 8 (que no són prefixos vàlids de mòbils).
Avantatge d'aquesta eina: Ens centrem específicament en les regles de números de telèfon, assegurant que els números generats segueixin patrons precisos per a cada país.
Números de Prova de Proveïdors de Telecomunicacions
Proveïdors com Twilio i Vonage ofereixen números de telèfon de prova per al desenvolupament d'API. Aquests són números realment funcionals que no envien missatges ni fan trucades.
Quan usar números de prova de proveïdors: Per a proves de punta a punta on cal verificar el lliurament de missatges o la finalització de trucades.
Quan usar aquesta eina: Per a proves unitàries, proves d'interfície d'usuari i omplir bases de dades on necessiteu volum i varietat sense límits de taxa d'API o costos.
Història dels formats i estàndards de números de telèfon
L'evolució dels formats i estàndards de números de telèfon està estretament relacionada amb el desenvolupament de la tecnologia i la infraestructura de telecomunicacions arreu del món.
Primers sistemes telefònics (1870-1950)
Quan els sistemes telefònics es van introduir per primera vegada a finals del segle XIX, els números de telèfon eren molt curts, sovint de només 2-4 dígits, ja que cada poble o ciutat tenia la seva pròpia central telefònica independent. Els operadors connectaven les trucades manualment connectant cables a taules de commutació.
A mesura que les xarxes telefòniques van créixer, els números es van fer més llargs i es van introduir els codis d'àrea. El Pla de Numeració Nord-americà (NANP) es va crear el 1947 per establir un sistema unificat als Estats Units i el Canadà, introduint el format de 3-3-4 dígits (codi d'àrea, codi d'intercanvi, número de subscriptor).
Desenvolupament d'estàndards internacionals (1960-1980)
La Unió Internacional de Telecomunicacions (UIT), establerta el 1865 com a Unió Internacional del Telègraf, va començar a desenvolupar estàndards internacionals per a la numeració telefònica als anys 60. Això va portar a la creació de codis de país i l'estandardització dels procediments de marcatge internacional.
El 1964, la UIT va introduir la Recomanació E.163, que va establir el pla de numeració telefònica internacional. Posteriorment, va ser substituïda per la Recomanació E.164 el 1984, que segueix sent l'estàndard actual per a la numeració de telecomunicacions públiques internacionals.
Revolució mòbil (1990-2000)
L'adopció generalitzada de telèfons mòbils als anys 90 i 2000 va crear nous reptes per als sistemes de numeració. Molts països van introduir prefixos específics o rangs de números sencers dedicats a telèfons mòbils. Per exemple, al Regne Unit, els números mòbils solen començar amb '07', mentre que a Mèxic, els números mòbils mantenien el mateix format que els telèfons fixos però amb codis d'àrea diferents.
Estàndards moderns i era VoIP (2000-Actualitat)
Amb l'auge de la Veu sobre IP (VoIP) i la comunicació basada en internet, els formats de números de telèfon han estat més flexibles. L'estàndard E.164 s'ha adaptat per acollir aquestes noves tecnologies, i molts països han revisat els seus plans de numeració per crear més capacitat.
La introducció de la portabilitat de números en molts països ha difuminat encara més la distinció entre números mòbils i fixos, ja que els usuaris ara poden mantenir els seus números quan canvien entre tipus de serveis.
Avui en dia, els formats de números de telèfon continuen evolucionant, amb alguns països que consideren l'eliminació dels codis d'àrea o la integració dels números de telèfon amb identitats digitals. Tanmateix, l'estructura bàsica establerta per E.164 segueix sent la base de la numeració de telecomunicacions globals.
Preguntes Freqüents
Com genero un número de telèfon aleatori per a proves?
Seleccioneu el país i la regió de destinació des dels menús desplegables, activeu si voleu format mòbil o fix, i feu clic a "Generar Número de Telèfon". L'eina crea un número estructuralment vàlid seguint les regles de format d'aquest país. Podeu canviar entre format internacional (amb +codi de país) i format local.
Per provar diversos escenaris, genereu diversos números amb configuracions diferents: això ajuda a detectar errors de validació que només apareixen amb formats específics.
Són aquests números de telèfon reals que poden rebre trucades o missatges?
No. Els números generats segueixen patrons de format correctes però es creen aleatòriament i no estan assignats a subscriptors reals. Estan dissenyats per provar la lògica de validació, omplir bases de dades i demostrar programari, no per a telecomunicacions reals.
Important: Mai intenteu trucar o enviar missatges a aquests números. Podrien pertànyer a persones reals o estar sense assignar.
Quina és la diferència entre format internacional i local de número de telèfon?
Format internacional inclou el codi de país amb un signe més: +52 55 1234 5678 (Mèxic). Aquest és l'estàndard E.164 usat per a telecomunicacions globals.
Format local mostra com es marcaria dins del país: 55 1234 5678 (Mèxic). Omet el codi de país ja que les trucades domèstiques no el requereixen.
En provar aplicacions que serveixen usuaris internacionals, valideu tots dos formats. Els usuaris introdueixen números de manera inconsistent: alguns enganxen "+1 555...", altres escriuen "(555)...". Un validador robust gestiona tots dos.
Per què els països tenen formats de número de telèfon diferents?
Cada país va desenvolupar el seu pla de numeració independentment, influenciat per la mida de la població, divisions geogràfiques i quan van construir la seva infraestructura telefònica. Els EUA van adoptar el Pla de Numeració de Nord-amèrica el 1947 amb un patró de 3-3-4 dígits. El Regne Unit usa codis geogràfics de longitud variable. L'Índia es va estandarditzar en números mòbils de 10 dígits per acollir la seva immensa població.
L'estàndard E.164 de la Unió Internacional de Telecomunicacions proporciona un marc, però els països l'implementen de manera diferent en funció de les seves necessitats. Per això la validació de telèfons és complexa: no es pot usar un únic patró regex per a tots els països.
Puc usar números de telèfon generats a la meva aplicació de producció?
Useu-los només per a desenvolupament i proves. No els emmagatzemeu com a dades d'usuari reals en bases de dades de producció. Aquí hi ha per què:
- Podrien coincidir accidentalment amb números assignats reals
- No rebran codis de verificació ni trucades
- Els usuaris es confondran si veuen aquests números als seus perfils de compte
Per proves de producció (com entorns de preparació), useu números de prova dedicats del vostre proveïdor de SMS o veu.
Com funciona la validació de números de telèfon?
La validació comprova la correcció estructural usant regles específiques de cada país:
- Verificació de longitud: Els números dels EUA han de tenir 10 dígits, els mòbils del Regne Unit 10-11 dígits
- Comprovació de prefix: Els mòbils del Regne Unit comencen per 7, els mòbils mexicans usen codis d'àrea específics
- Coincidència de patró: Els patrons regex asseguren l'agrupació i format correctes
Què no fa la validació: verificar si un número està en servei, identificar l'operador o comprovar si pot rebre missatges. Per a això, necessiteu serveis com l'API Lookup de Twilio o integrar libphonenumber.
Aquesta eina desa o emmagatzema els números de telèfon que genero?
No. Tota la generació es fa al vostre navegador. Res s'envia a un servidor ni s'emmagatzema a cap lloc. Quan genereu un número, existeix només a la vostra sessió actual. Actualitzeu la pàgina i desapareix.
Això fa que l'eina sigui segura per treballar amb dades de proves en entorns segurs on no podeu enviar informació externament.
Com valido números de telèfon al meu propi codi?
Els exemples d'implementació anteriors mostren patrons de validació per a diferents llenguatges. L'enfocament bàsic:
- Definiu patrons regex per a cada país que doneu suport
- Normalitzeu l'entrada (elimineu espais, parèntesis, guions)
- Comproveu si el número net coincideix amb els vostres patrons
- Considereu usar libphonenumber per a producció: gestiona millor els casos límit que regex personalitzat
Error comú: Validar format sense normalitzar primer l'entrada. Els usuaris introduiran "+1 (555) 123-4567", "1-555-123-4567" i "15551234567" esperant que tots funcionin. El vostre validador hauria de gestionar totes les variants.
Referències
-
Unió Internacional de Telecomunicacions (UIT). "E.164: El Pla de Numeració Telefònica Públic Internacional." UIT
-
Administració del Pla de Numeració de Nord-amèrica. "Sobre el Pla de Numeració de Nord-amèrica." NANPA
-
Ofcom (Regne Unit). "Números de telèfon - el Pla Nacional de Numeració Telefònica." Ofcom
-
Departament de Telecomunicacions, Govern de l'Índia. "Pla Nacional de Numeració." DoT Índia
-
Institut Federal de Telecomunicacions (Mèxic). "Pla Nacional de Numeració." IFT Mèxic
-
Biblioteca libphonenumber de Google. "Analitzador, Formatador i Validació de Números de Telèfon." Repositori de GitHub
-
Guia Mundial de Numeració Telefònica. "Codis de Marcació Internacional i Informació." WTNG
Comença a Generar Números de Telèfon de Proves
Necessites números de telèfon vàlids per a la teva pròxima sessió de proves? Tria el teu país, selecciona mòbil o línia fixa, i genera números amb format correcte que segueixen patrons del món real. L'eina gestiona la complexitat dels estàndards internacionals mentre manté una interfície senzilla: sense comptes, sense claus API, només resultats instantanis.
Perfecte per a desenvolupadors que proven la lògica de validació, equips de control de qualitat que omplen entorns de proves, o qualsevol persona que necessiti exemples de números de telèfon realistes.