Listo (Ctrl + Enter para ejecutar) Bootcamp Fullstack »
app.js
Tab = 4 espacios
1
const documentoMarkdown = `
# Recursos de Aprendizaje Kilopolis
- Visita nuestra [Academia Oficial](https://academia.kilopolis.com) para tutoriales.
- Revisa el [Manual de JavaScript](https://academia.kilopolis.com/manuales/javascript).
- Consulta el [Repositorio GitHub](https://github.com/solucionaticos/kilopolis-core).
`;

// Patrón con grupos nombrados (?<texto>...) y (?<url>...) con bandera /g obligatoria
const patronMarkdown = /\[(?<texto>[^\]]+)\]\((?<url>https?:\/\/[^\s)]+)\)/g;

console.log("--- 1. Iteración con for...of y matchAll() ---");
for (const match of documentoMarkdown.matchAll(patronMarkdown)) {
  const { texto, url } = match.groups;
  console.log(`Encontrado: "${texto}" => ${url} (en posición ${match.index})`);
}

console.log("\n--- 2. Conversión a Array de Objetos con Array.from() ---");
const enlacesEstructurados = Array.from(
  documentoMarkdown.matchAll(patronMarkdown),
  match => ({
    titulo: match.groups.texto,
    href: match.groups.url,
    posicion: match.index
  })
);

console.log(enlacesEstructurados);
Haz clic para editar este código
Vista Previa
Consola Virtual JavaScript