Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/08/2007, 19:45
GikaJavi
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Expresiones regulares

Yo no lo enfocaría con expresiones regulares. Más bien me desharía de los caracteres no numéricos de la expresión de entrada. Si los datos guardados en la BD también pueden tener caracteres no numéricos, entonces también me desharía de ellos.

Suponiendo que un número de teléfono puede estar formado por los caracteres '-', ' ', '(', ')' y cualquier número, entonces formatería el teléfono a buscar así:

$telf = ereg_replace("[-() ]", "", $telf); // Lo mismo que anidar 4 replaces

Si en el campo de la BD también pueden existir estos caracteres, entonces debes hacer lo mismo. Si usas MySQL, creo que no hay un equivalente al ereg_replace, así que tendrás que anidar 4 replaces. Hechas las transformaciones, estarás siempre comparando números "limpios". El inconveniente es que los replaces en la consulta pueden hacerla algo lenta si la tabla es grande.