Ahora veremos que podemos inicializar luego que indicamos entre
corchetes el patrón a buscar la cantidad de veces que puede repetirse
este patrón.
Son útiles para controlar la cantidad de repeticiones del patrón definido.
Se especifican luego del corchete donde definimos los caracteres permitidos:
Verificar si contiene entre 3 y 6 dígitos:
Verificar si contiene 3:
Verificar si contiene 3 o más dígitos:
var patron=/[0-9]{3,}/;
Problema
Ingresar una oración y mostrar si se ingresó un número que tiene al menos 2 dígitos.
<html>
<head>
</head>
<body>
<script type="text/javascript">
var oracion=prompt('Ingrese una palabra','');
var patron=/[0-9]{2,}/;
if (patron.test(oracion))
alert('La oración tiene un número de al menos 2 dígitos');
else
alert('La oración no tiene un número de al menos 2 dígitos');
</script>
</body>
</html>
La expresión regular se verifica verdadera si se ingresa:
Yo tengo 20 años.
Yo tengo 101 años.
La expresión regular se verifica falsa si se ingresa:
Yo tengo 5 años.
Problema
Ingresar una patente de un auto de argentina y luego mostrar un mensaje
si es correcto o no su valor. Toda patente está constituida por 3
números y tres letras en ese orden (ej. 345afg )
<html>
<head>
</head>
<body>
<script type="text/javascript">
var patente=prompt('Ingrese un nro de patente','');
var patron=/[0-9]{3}[a-z]{3}/;
if (patron.test(patente))
alert('La patente ingresada es correcta');
else
alert('La patente ingresada no es correcta');
</script>
</body>
</html>
A primera medida este patrón resolvería nuestro problema:
var patron=/[0-9]{3}[a-z]{3}/;
Se verifica verdadero si se ingresa:
Se verifica falso si se ingresa:
Pero tenemos un problema ya que si ingresamos:
SE VERIFICA VERDADERO.
Para resolver esto debemos modificar el patrón indicando que los últimos tres caracteres deben ser letras:
var patron=/[0-9]{3}[a-z]{3}$/;
Ahora si ingresamos 123abcd se verifica falso.
Pero todavía tenemos otro problema al ingresar:
Y finalmente para que funcione correctamente debemos definir el patrón:
var patron=/^[0-9]{3}[a-z]{3}$/;
El algoritmo correcto es el siguiente:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var patente=prompt('Ingrese un nro de patente','');
var patron=/^[0-9]{3}[a-z]{3}$/;
if (patron.test(patente))
alert('La patente ingresada es correcta');
else
alert('La patente ingresada no es correcta');
</script>
</body>
</html>
Problema
Ingresar una oración y mostrar si se ingresó uno o más números con exactamente 5 dígitos.
Para resolver este problema debemos definir un patrón que identifique
un número con exactamente cinco dígitos y que antes y después de este
tenga un espacio en blanco. Para identificar el espacio en blanco
debemos introducir en la expresión regular el carácter de escape y la
letra s, es decir \s
El algoritmo luego es:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var oracion=prompt('Ingrese una oracion','');
var patron=/\s[0-9]{5}\s/;
if (patron.test(oracion))
alert('La oración tiene un número de 5 dígitos');
else
alert('La oración no tiene un número de 5 dígitos');
</script>
</body>
</html>
Ahora vemos la expresión regular definida es:
var patron=/\s[0-9]{5}\s/;
Es decir que para que se valide verdadero el string debe contener un
espacio en blanco, seguido de 5 dígitos y otro espacio en blanco.