Listado completo de tutoriales
Expresiones regulares: cuantificadores o repeticiones {x} {x,y} {x,} |
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:
let patron=/[0-9]{3,6}/;
Verificar si contiene 3:
let patron=/[0-9]{3}/;
Verificar si contiene 3 o más dígitos:
let patron=/[0-9]{3,}/;Problema Ingresar una oración y mostrar si se ingresó un número que tiene al menos 2 dígitos.
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> let oracion = prompt('Ingrese una palabra'); let 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 2 letras, tres números y finalmente 2 letras (ej. aa123bb )
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> let patente = prompt('Ingrese una patente'); let patron = /[a-z]{2}[0-9]{3}[a-z]{2}/; 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:
let patron = /[a-z]{2}[0-9]{3}[a-z]{2}/;
Se verifica verdadero si se ingresa:
aa111bb zx343bb
Se verifica falso si se ingresa:
a333bb bb22dd
Pero tenemos un problema ya que si ingresamos:
aa111cccd
SE VERIFICA VERDADERO.
Para resolver esto debemos modificar el patrón indicando que los últimos dos caracteres deben ser letras:
let patron=/[a-z]{2}[0-9]{3}[a-z]{2}$/;
Ahora si ingresamos aa111bbb se verifica falso.
Pero todavía tenemos otro problema al ingresar:
5aa111bb
Y finalmente para que funcione correctamente debemos definir el patrón:
let patron=/^[a-z]{2}[0-9]{3}[a-z]{2}$/;
El algoritmo correcto es el siguiente:
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> let patente = prompt('Ingrese una patente'); let patron = /^[a-z]{2}[0-9]{3}[a-z]{2}$/; 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 que contengan un espacio en blanco antes y después del número, por ejemplo:
Las ventas del més fueron 70000 pares.
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:
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> let oracion = prompt('Ingrese una oracion'); let 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:
let 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.