Un campo de teléfono sin validación parece inofensivo hasta que el mensajero no consigue contactar con el cliente que espera un paquete. Sobre todo en un formulario de pedidos manuales, donde alguien del equipo transcribe un número de una llamada o de una captura de chat, un campo de texto simple deja pasar erratas, longitudes incorrectas y prefijos no válidos una y otra vez.
El patrón real que hay que validar
Los números de móvil de Bangladés siguen un formato concreto y bien definido: once dígitos, que empiezan por 01, seguidos de un dígito del 3 al 9 que identifica al operador y ocho dígitos más, lo que se expresa con la expresión regular ^01[3-9]d{8}$. Todo lo que no tenga esa forma no es un móvil bangladesí válido, sin más.
Se comprueba dos veces, por dos motivos distintos
Validamos ese patrón en dos lugares, y cada uno resuelve un problema diferente:
- En el navegador, al instante. En cuanto el empleado termina de escribir, aparece un mensaje de error junto al campo si el número no coincide, y desaparece en cuanto lo corrige: el error se detecta antes incluso de enviar el formulario.
- En el servidor, al enviar. La misma comprobación se repite en el controlador que crea el pedido y rechaza la solicitud si se ha saltado la del navegador, ya sea con JavaScript desactivado o con una petición directa. La validación en el navegador es una cortesía; la del servidor es la verdadera garantía.
También establecimos maxlength="11" e inputmode="numeric" en el propio campo, para que el teclado del teléfono muestre el teclado numérico por defecto y no pueda aceptar un duodécimo dígito: pequeños detalles que hacen que introducir el dato correcto sea el camino más fácil, en lugar de algo que la validación tenga que detectar después.
Conclusiones clave
- Una validación que solo existe en el navegador no es validación, es una comodidad. La comprobación en el servidor es la que protege realmente los datos.
- Un patrón de validación debe corresponder al formato real que representa, no a una regla genérica de «parece un número de teléfono».
- Atributos como
inputmodeymaxlengthevitan tipos enteros de errores antes de que la lógica de validación tenga que ejecutarse.
Lecturas relacionadas: seleccionar automáticamente el envío gratuito al alcanzar un importe, por qué los correos de pedidos no llegaban a Gmail.
¿Se encuentra con una limitación parecida en su panel de WooCommerce o WordPress? Hablemos: en ArtinTech Solution creamos exactamente este tipo de herramientas a medida para tiendas.