
Validador de Regex para Números de Teléfono en Python
Valide números de teléfono con precisión usando el Validador de Regex para Números de Teléfono en Python. Ya sea que verifique formatos locales o patrones internacionales, esta herramienta garantiza una validación precisa adaptada para aplicaciones Python. Para pruebas más extensas, use el Python Regex Tester o profundice con utilidades como el Validador de Regex de Dirección IP en Python y el Validador de Regex de Email en Python.
Validador de Regex para Números de Teléfono en Python - Documentación
¿Qué es el Regex de Números de Teléfono en Python?
El regex de números de teléfono en Python le permite validar si una cadena coincide con los formatos de número de teléfono esperados, ya sean locales, internacionales o formateados para mayor legibilidad.
En Python, esto se realiza normalmente usando el módulo re con un patrón de expresión regular que verifica dígitos, códigos de país opcionales, separadores (como -, espacio o ()) y longitudes válidas. El módulo re es la biblioteca integrada de Python para trabajar con expresiones regulares, facilitando la búsqueda, coincidencia y manipulación de texto mediante patrones.
Puede incluir anchors en su expresión regular para garantizar que el número de teléfono completo coincida desde el inicio hasta el final, evitando coincidencias parciales. Por ejemplo:
^(+\d{1,3})?\s?(?\d{1,4})?[\s.-]?\d{3}[\s.-]?\d{4}$
Este patrón acomoda códigos de país opcionales, espacios, paréntesis y varios separadores como puntos, espacios o guiones.
Los principales componentes que puede querer que su regex maneje incluyen:
Código de país: Generalmente opcional, suele comenzar con un +, y consta de uno o más dígitos (por ejemplo, +1, +44, +91).
Código de área: Puede estar entre paréntesis, y el número de dígitos puede variar según el país o región.
Número local: La secuencia principal de dígitos, a menudo separada en grupos por espacios, guiones o puntos para mayor legibilidad.
Para comenzar, simplemente importe el módulo:
python import re
El módulo re proporciona varias funciones clave:
re.search(): Escanea toda la cadena y devuelve un objeto de coincidencia si el patrón se encuentra en algún lugar.
re.match(): Verifica una coincidencia solo al principio de la cadena.
re.findall(): Devuelve una lista de todas las coincidencias no superpuestas en la cadena.
re.compile(): Compila un patrón regex en un objeto de patrón reutilizable para una coincidencia repetida eficiente.
Formatos Comunes de Números de Teléfono
Los números de teléfono pueden aparecer en una variedad de formatos dependiendo del país, la región y la preferencia del usuario.
Formato internacional: Incluye un código de país (precedido por +), código de área y número local.
Formato local: Generalmente omite el código de país, usando solo el código de área y el número local.
Códigos de País y de Área
Códigos de país: Identifican números de teléfono internacionalmente (por ejemplo, +1 para EE. UU., +44 para el Reino Unido).
Códigos de área: Ayudan a identificar regiones o ciudades específicas dentro de un país y pueden variar en longitud.
Separadores Comunes
Espacios
Guiones
Puntos
Sin separadores
Paréntesis alrededor del código de área
Funciones Clave del Módulo re de Python para Validación con Regex
re.search(): Escanea toda la cadena buscando la primera ubicación donde su patrón coincida.re.match(): Se enfoca solo en el inicio de una cadena.re.findall(): Recorre la entrada y recopila cada ocurrencia no superpuesta de su patrón.re.compile(): Le permite preparar y reutilizar un patrón regex para validaciones más rápidas.
¿Cuándo Usarlo?
Formularios de registro de usuario para garantizar que las entradas de teléfono sean correctas
APIs que procesan datos de contacto
Sistemas CRM para limpiar y validar entradas móviles
Sistemas SMS/llamadas para evitar fallos de mensaje por formatos incorrectos
Patrones Regex Comunes para Números de Teléfono
Solo dígitos básicos (número estilo EE. UU. de 10 dígitos):
^\d{10}$Coincide con 9876543210
Con código de país (por ejemplo, +91 para India):
^\+\d{1,3}\d{7,14}$Coincide con +919876543210
Formateado con espacios o guiones:
^\+?\d{1,3}[-\s]?\(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4}$Coincide con +1 800-555-1234 o (800) 555-1234
Cómo Validar Números de Teléfono con Regex en Python
Aquí tiene un ejemplo completo usando el módulo re:
import redef is_valid_phone(phone): # Permite código de país opcional, espacios, guiones, paréntesis pattern = re.compile(r'^+?\d{1,3}?[-\s]?(?\d{2,4})?[-\s]?\d{3,4}[-\s]?\d{4}$') return pattern.match(phone) is not None
Casos de prueba
print(is_valid_phone("+91 98765 43210")) # True print(is_valid_phone("(022) 123-4567")) # True print(is_valid_phone("9876543210")) # True print(is_valid_phone("12345")) # False
Mejorar la Legibilidad con Grupos con Nombre
Los grupos con nombre en regex permiten etiquetar cada sección del patrón con un nombre descriptivo. Por ejemplo:
pattern = re.compile(r'(?P<country_code>+\d{1,3})?\s?(?(?P<area_code>\d{1,4}))?[\s.-]?(?P<local_number>\d{3}[\s.-]?\d{4})')Puede acceder a cada parte por nombre, lo que hace su código más claro y menos propenso a errores.
Combine con Estas Herramientas
Validador de Regex de Email en Python: Valide entradas de email junto con datos de teléfono.
Validador de Regex de Dirección IP en Python: Verifique campos IP durante el registro.
Validador de Regex de Contraseña en Python: Aplique reglas de contraseñas seguras para la seguridad de la cuenta.
Validador de Regex de UUID en Python: Valide IDs únicos de usuario/sesión junto con números de teléfono.
Consejos Avanzados
Siempre normalice los números de teléfono tras la validación para el almacenamiento (por ejemplo, elimine guiones o espacios).
Si trabaja con usuarios internacionales, prefiera patrones que admitan + opcional y longitudes variables.
Evite asumir una longitud fija; diferentes países tienen diferentes estándares (por ejemplo, Reino Unido, India, EE. UU.).
Use re.fullmatch() en lugar de re.match() si desea coincidir estrictamente con toda la cadena.
Para la interfaz de usuario, considere combinar la validación regex con menús desplegables de códigos de país para mejorar la precisión.
Manejo de Errores Comunes de Entrada del Usuario
Los usuarios pueden ingresar números de formas inesperadas. Puede preprocesar la entrada antes de aplicar su regex:
def preprocess_phone_number(phone_number):Eliminar espacios adicionales
phone_number = " ".join(phone_number.split())
Reemplazar separadores incorrectos comunes
phone_number = phone_number.replace(",", ".").replace(";", ".") return phone_number
def validate_phone_number(phone_number): phone_number = preprocess_phone_number(phone_number) match = pattern.search(phone_number) return bool(match)
Técnicas Avanzadas de Validación de Números de Teléfono
1. Grupos con Nombre para Mayor Claridad
pattern = re.compile(r"(?P<country_code>+\d{1,3})?\s?(?(?P<area_code>\d{1,4}))?[\s.-]?(?P<local_number>\d{3}[\s.-]?\d{4})" )2. Validar Códigos de País o Área Específicos
pattern = re.compile( r"(+1)?\s?(?(2\d{2}[3-9]\d{2}))?[\s.-]?\d{3}[\s.-]?\d{4}" )3. Manejo de Errores Comunes de Entrada del Usuario
def preprocess_phone_number(phone_number): # Eliminar espacios adicionales phone_number = " ".join(phone_number.split()) # Reemplazar separadores incorrectos comunes phone_number = phone_number.replace(",", ".").replace(";", ".") return phone_number
def validate_phone_number(phone_number): phone_number = preprocess_phone_number(phone_number) match = pattern.search(phone_number) if match: return True return False
Casos de Uso
Validar entradas de usuario en formularios de Django o Flask
Filtrar datos de contacto masivos en pipelines ETL
Verificar números de teléfono antes de enviar alertas SMS
Agregar restricciones regex en validadores de datos basados en Python
Frequently Asked Questions
¿Este regex admite formatos de línea fija?
¿Puedo usar este regex para formatos internacionales?
¿Cómo extraigo solo los números de teléfono válidos de un archivo de texto?
¿Es suficiente el regex para validar números de teléfono reales?
¿Debo almacenar números formateados o sin formatear?
Related Articles



¡Pruebe sus APIs hoy!
Escriba en español simple, Qodex lo convierte en pruebas seguras y listas para ejecutar.



