Listo (Ctrl + Enter para ejecutar) Bootcamp Fullstack »
app.js
Tab = 4 espacios
1
// 1. Parseo de URLs con Grupos Nombrados y Grupos de No-Captura
const urlPatron = /^(?<protocolo>https?):\/\/(?<host>[\w.-]+)(?::(?<puerto>\d+))?(?<ruta>\/[^\s?]*)?(?:\?(?<query>[^\s#]+))?$/;

const muestraUrl = "https://academia.kilopolis.com:443/cursos/javascript?filtro=avanzado";
const resultadoUrl = muestraUrl.match(urlPatron);

console.log("--- 1. Desestructuración de Grupos Nombrados ---");
if (resultadoUrl && resultadoUrl.groups) {
  const { protocolo, host, puerto, ruta, query } = resultadoUrl.groups;
  console.log("Protocolo:", protocolo);
  console.log("Host:     ", host);
  console.log("Puerto:   ", puerto || "80 / 443 (por defecto)");
  console.log("Ruta:     ", ruta);
  console.log("Query:    ", query);
}

// 2. Referencias Retrospectivas con \k<nombre> para etiquetas HTML
console.log("\n--- 2. Validación de Etiquetas Emparejadas ---");
const patronTag = /<(?<tag>[a-z1-6]+)>(.*?)<\/\k<tag>>/i;

const pruebaCorrecta = "<h1>Título Principal</h1>";
const pruebaErronea  = "<h2>Título Descuadrado</h3>";

console.log("<h1>...</h1> es válido?  ", patronTag.test(pruebaCorrecta)); // true
console.log("<h2>...</h3> es válido?  ", patronTag.test(pruebaErronea));  // false
Haz clic para editar este código
Vista Previa
Consola Virtual JavaScript