Esta es la historia de uno de esos efectos que tanto nos gustan a los desarrolladores, en los que un cambio del mundo real hace que aplicaciones que antes funcionaban dejen de hacerlo. Como el "efecto año 2000" pero en pequeño y en local.
La CMT ha aprobado y asignado los primeros 200.000 números de móvil que comienzan por 7 para Orange, que los utilizará de forma interna y con sus empleados para hacer pruebas. En el cuarto trimestre de 2011 la CMT abrirá definitivamente las asignaciones de estos números a cualquier operador y cliente. Y a esto hay que añadir que hace ya algún tiempo que se asignan números fijos que empiezan por 8 en lugar de por 9 (al menos Jazztel y Ono ya los asignan).
Y he aquí nuestro pequeño "Efecto 7": hay miles de aplicaciones con formularios donde se puede escribir un teléfono, aplicaciones que validan el número de teléfono... a la antigua usanza, es decir, que comienzan por 6 (móviles) o por 9 (fijos). Por lo tanto, toca revisar y cambiar las validaciones de todas estas aplicaciones. Trabajo de chinos en según que casos.
Hay que revisar y cambiar miles de aplicaciones que validan números de teléfono que comiencen por 6 o por 9
Personalmente, hace ya tiempo que a la hora de validar un teléfono acepto móviles y fijos indistintamente, salvo que el cliente exija distinguirlos y yo no le pueda convencer de lo contrario. Lo hago así porque hoy en día mucha gente (me incluyo) no tiene teléfono fijo, al no ser ya necesario para tener internet en casa y ser suficiente con el móvil para la mayoría de personas.
En mi caso, ya voy cambiando mis validaciones para usar una expresión regular modificada para aceptar estas dos nuevas numeraciones que empezarán a extenderse en unos meses:
^(((\+\d{2,3})|(00\d{2,3}))(\s|\-)?)?([6-9]){1}(\d|\d\s|\d\-){8}$
Esta regexp valida números de teléfono fijos y móviles, que empiecen por 6 o 7 o por 8 o 9 respectivamente. Admite prefijos internacionales, así como separar los números por espacios o por guiones.
Ejemplo de uso desde PHP mostrando posibles números que acepta:
$numeros = array(
'666666666', '666-666-666',
'777 77 77 77', '91 111 11 11',
'+34 888 88 88 88', '0034 999 99 99 99',
'+34-666 66 66 66', '0034 766777777',
'444555666', 'abcdefghi',
'123456789', '9876543210',
'654321', '666 aaa 666'
);
foreach( $numeros as $numero )
echo preg_match('/^(((\+\d{2,3})|(00\d{2,3}))(\s|\-)?)?([6-9]){1}(\d|\d\s|\d\-){8}$/', $numero) ? "\nAceptar: $numero" : "\nNo aceptar: $numero";
echo "\n";
Esta web
http://alvaroremesal.net
, su contenido, texto e imágenes está licenciado bajo una
Licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 España.