Olá Luciano, tudo bem?
Peço desculpa pela demora para lhe responder.
A mensagem "is not a function" geralmente ocorre quando tentamos executar uma função em uma variável que não é uma função. No seu exemplo, pode ser que a variável "texto" não seja uma string, o que faria com que o método matchAll
não funcionasse, logo, verifique se a variável que você está passando para a função trata-se de uma string.
Para evitar esse erro, você pode adicionar uma verificação antes de executar o método, como, por exemplo:
function extrairLink(texto){
if(typeof texto !== 'string') return; // verifica se texto é uma string
const regex = /\[([^[]*?)\]\((https?:\/\/[^\s?#.]*.[^\s]*)\)/gm;
const pegaLink = [...texto.matchAll(regex)];
const capturas = pegaLink.map(captura => ({[captura[1]]: captura[2]}))
console.log(capturas)
}
extrairLink(textoTest)
Dessa forma, se a variável "texto" não for uma string, a função será interrompida antes de executar o método "matchAll".
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.