Listo (Ctrl + Enter para ejecutar) Bootcamp Fullstack »
app.js
Tab = 4 espacios
1
// Expresión regular con bandera /d (hasIndices) y grupos con nombre
const regexConIndices = /(?<protocolo>https?):\/\/(?<host>[\w.-]+)/d;

const texto = "Visita https://academia.kilopolis.com para comenzar.";
const match = regexConIndices.exec(texto);

console.log("--- 1. Inspección de match.indices (ES2022) ---");
console.log("Texto completo analizado:", texto);
console.log("Coincidencia general:", match[0]);

// Coordenadas generales [inicio, fin]
const [inicioTotal, finTotal] = match.indices[0];
console.log(`Rango total: [${inicioTotal}, ${finTotal}] => "${texto.slice(inicioTotal, finTotal)}"`);

// 2. Coordenadas de grupos nombrados
console.log("\n--- 2. Coordenadas de Grupos Nombrados ---");
const { protocolo, host } = match.indices.groups;

console.log(`Protocolo indices: [${protocolo[0]}, ${protocolo[1]}] => "${texto.slice(protocolo[0], protocolo[1])}"`);
console.log(`Host indices:       [${host[0]}, ${host[1]}] => "${texto.slice(host[0], host[1])}"`);

// 3. Verificación de soporte de bandera en el objeto RegExp
console.log("\n--- 3. Propiedad hasIndices ---");
console.log("¿RegExp tiene activa bandera /d?:", regexConIndices.hasIndices); // true
Haz clic para editar este código
Vista Previa
Consola Virtual JavaScript