Listado completo de tutoriales
Expresiones regulares: agrupación en subpatrones () |
Los paréntesis abiertos y cerrados pueden tener varios significados en las expresiones regulares. El fundamental es el agrupar una parte de la expresión regular y aplicarle operaciones como |, *, +, ? etc.
ProblemaElaborar una expresión regular que permita validar si se ingresó correctamente un valor entero o real y que eventualmente lleve el caracter + o - al principio. Validar que si se ingresa la coma debe ingresarse la parte real
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> let nro = prompt('ingrese un número entero o real:'); let patron = /^[+-]?\d+(\,\d+)?$/; if (patron.test(nro)) alert('Correcto'); else alert('Incorrecto'); </script> </body> </html>
Podemos analizar esta expresión regular:
let patron = /^[+-]?\d+(\,\d+)?$/;
Como la coma y la parte decimal son opcionales los encerramos entre paréntesis y lo finalizamos con el cuantificador '?'
Esto hace que cuando se ingresa la coma deba ingresarse uno o más dígitos obligatoriamente ya que los agrupamos mediante los paréntesis.
Ingresar una hora con el formato hh:mm:ss, plantear una expresión regular que valide si es correcta.
<!DOCTYPE html> <html> <head> <title>Ejemplo de JavaScript</title> <meta charset="UTF-8"> </head> <body> <script> let hora = prompt('ingrese una hora con el formato hh:mm:ss'); let patron = /^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$/; if (patron.test(hora)) alert('Correcto'); else alert('Incorrecto'); </script> </body> </html>
Analicemos un poco como hemos agrupado cada uno de las secciones de la hora:
let patron = /^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$/;
La parte inicial puede tomar un valor entre 0 y 23:
(0[1-9]|1\d|2[0-3])
Utilizamos el metacarácter | para permitir ingresar el cero seguido de un valor entre 1 y 9, o el valor 1 y cualquier dígito, o el dos seguido del dígito 0,1,2, o 3.
Luego debe ingresarse el caracter dos puntos.
La parte de los segundos queda definida por el patrón ([0-5]\d) es decir un valor entre 0 y 5 seguido de cualquier dígito.
Finalmente los segundos es similar a los minutos: ([0-5]\d)