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
3 Comentarios:
¿Cómo puedo generar en javascript una expresión regular que me valide un rango entre dos números de distintas longitudes?
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.
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.
Mandar un comentario