Replicar a funcionalidade do "Pattern.quote" do Java em um JavaScript RegExp [duplicado]
Esta pergunta já tem uma resposta aqui:
Existe uma função RegExp.escape em Javascript? 12 respostasEm Java, você pode tentar criar uma expressão regular que corresponda à URLstackoverflow.com
usandoPattern.compile("stackoverflow.com")
. Mas isso seria errado porque o.
tem um significado especial em expressões regulares. A maneira mais fácil de corrigir isso é escreverPattern.compile(Pattern.quote("stackoverflow.com"))
que sai para:Pattern.compile("\\Qstackoverflow.com\\E")
qual"aspas" a sequência inteira.
Quero fazer o mesmo no JavaScript, mas as expressões regulares do JavaScript não atribuem nenhum significado a\Q
e\E
e não parece haver um equivalente a JavaScript, por isso não tenho certeza de como fazê-lo. Meu primeiro pensamento (veja minha resposta abaixo) é colocar uma barra invertida antes de qualquer caractere que tenha um significado especial em uma regex JavaScript, mas isso parece potencialmente propenso a erros e eu suspeito que alguém possa saber de uma maneira melhor.
Isso é para uma extensão do Firefox, portanto as soluções específicas da Mozilla estão bem.