7.6.07

Expresiones regulares III

Validación de un número telefónico

Supongamos que debes validar un número telefónico que tiene código de área, característica y resto del número. Utilizamos un sólo campo de entrada de datos y solicitamos al usuario que lo ingrese en el formato NNN-NNN-NNNN (donde N representa a cada dígito), sabiendo que el código de área nunca comienza con un 1 o un 0. La expresión que realizará el control sería:

(/^[2-9]\d{2}-\d{3}-\d{4}$/.test('222-333-4444');

^[2-9] controlará que el primer grupo de dígitos comience con los digitos 2 a 9.

\d{2} indica que el primer dígito del el primer grupo esté seguido por dos dígitos más.

- indica en que posición deben ir el guión.

\d{3} indica que al guión anterior deben seguirle 3 dígitos.

- indica en que posición deben ir el guión.

\d{4}$ indica que al guión deben anterior seguirle 4 dígitos, y que éste es el final del número ($)

Limitar el tamaño del dato a controlar

Con expresiones puedes regular el tamaño de los datos que debe entrar el usuario. La siguiente expresión retorna true si el número testeado consta de dos dígitos:

document.write(/^\d\d$/.test(22));

Simplemente decimos que debe comenzar con un dígito (^\d) y a éste sólo le puede seguir otro dígito (\d). Esta expresión también la podemos escribir utilizando las llaves ({}):

document.write(/^\d{2}$/.test(22));

El número encerrado entre las llaves especifica exáctamente la cantidad de dígitos que se deben ingresar. Sin embargo, puede tratarse de una cantidad variable de dígitos lo que se espera:

document.write(/^\d{2,4}$/.test(222));

En este caso, son dos los números encerrados entre las llaves, separados por una coma, lo que indica al testeador que se espera un número de dos dígitos como mínimo y cuatro dígitos como máximo.

Ver también

ciberbanner.com intercambio de banners

3 Comentarios:

Bernie dice...

¿Cómo puedo generar en javascript una expresión regular que me valide un rango entre dos números de distintas longitudes?

Julio González Seara dice...

Supongo que te refieres a dos números telefónicos. Pues es sencillo. No puedes tener una sola expresión, pero puedes tener varias y utiliar OR.

Bernie dice...

Me refería a una función que le pasase 2 parámetros (min, max) y que devolviera una expresión regular para validar que dado un número se hallase entre min y max. Por ejemplo entre 509 y 2718.