martes, 17 de marzo de 2009

Expresiones Regulares - Validar número de telefono

¿Qué son expresiones regulares?,según la Wikipedia:
Una expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos.[...]Las expresiones regulares son un método por medio del cual se pueden realizar búsquedas dentro de cadenas de caracteres. Sin importar si la búsqueda requerida es de dos caracteres en una cadena de 10 o si es necesario encontrar todas las apariciones de un patrón definido de caracteres en un archivo de millones de caracteres, las expresiones regulares proporcionan una solución para el problema. Adicionalmente, un uso derivado de la búsqueda de patrones es la validación de un formato específico en una cadena de caracteres dada, como por ejemplo fechas, números de teléfono o identificadores.

A continuación los los caracteres comodín usados para crear las expresiones regulares:
SignificadoEjemploResultado
\ Marca de carácter especial/\$ftp/Busca la palabra $ftp
^ Comienzo de una línea/^-/Líneas que comienzan por -
$ Final de una línea/s$/Líneas que terminan por s
. Cualquier carácter (menos salto de línea)/\b.\b/Palabras de una sóla letra
| Indica opciones/(L|l|f|)ocal/Busca Local, local, focal
( ) Agrupar caracteres/(vocal)/Busca vocal
[ ] Conjunto de caracteres opcionales/escrib[aoe]/Vale escriba, escribo, escribe


La tabla que sigue describe los modificadores que pueden usarse con los caracteres que forman el patrón.Cada modificador actúa sobre el carácter o el paréntesis inmediatamente anterior.
SímboloDescripciónEjemploResultado
*Repetir 0 o más veces/l*234/Valen 234, 1234, 11234...
+Repetir 1 o más veces/a+mar/Valen amar, aamar, aaamar...
?Repetir 1 o 0 veces/a?mar/Valen amar, mar.
{n}Exactamente n veces/p{2}sadoVale ppasado
{m,n}Entre m y n veces/car{1,3}o/Vale caro, carro, carrro

Para validar un numero de telefono:


function ValidaTelef(string_numero)
{
/*creo la expresion regular y se la asigno a una variable
aceptará numeros como: 83294325,88173764,8... */

var filter = /^[8]{1}[1-9]{2}[0-9]{5}$/;

/*llamo a la funcion test pasandole la cadena numero
Devuelve true si el numero coincide y false en caso contrario*/

return filter.test(string_numero);
}

1 comentario: