4
respostas

por que algumas vezes vem uma msg is not function

por que algumas vezes têm metodos que aparece essa mensagem de que não é uma função, por que causa isto?

function extrairLink(texto){
        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)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4 respostas

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 ✓.

olá Armano, verifiquei e é uma 'string' continua com mesmo erro, verifiquei mas não deu certo.

Oi, Luciano.

Peço desculpa pelo retorno tardio.

Gostaria que você compartilhasse todo o seu projeto comigo, via Github ou Drive do Google. Pois dessa forma conseguirei entender melhor a sua situação, logo poderei lhe dar uma resposta mais assertiva.

Fico no aguardo e à disposição

olá meu amigo, obrigado pelo sua atenção, vou fazer isto, vou colocar no github este projeto. eu demorei em responder porque que coloquei um ssd no meu computador e aumenteia memoria ram. estou instalando os programas novamente, mas grato por me ajudar, penso em fazer desde o inicio o curso novamente, rever as aulas,entendi a logica de alguns procedimento.mas vou manda sim. valeu