0
respostas

Possível solução para o retorno null

Descobri, após alguns testes, que o problema se encontra na primeira parte da expressão regular \[([^]]*)\]

Acontece que os colchetes são caracteres especiais utilizados para definir uma classe dentro da expressão regular.

Observando a classe [^]], o site regex101 interpreta o elemento "]" que está dentro da classe como se fosse um caractere normal, mas ao utilizar a mesma expressão regular no JavaScript, ele o interpreta como o fechamento da classe, como não há nenhum trecho de código que satisfaz a expressão regular interpretada pelo JavaScript, o valor NULL é retornado.

Para solucionar o problema basta adicionar o caractere de escape "\" antes do colchete "]" que está dentro da classe, tornando-o assim um caractere normal aos olhos do JavaScript.

Portanto a expressão regular completa fica:

const regex = /\[([^\]]*)\]\((https?:\/\/[^$#\s].[^\s]*)\)/gm;

Espero ter ajudado!

Abraços