Replicar la funcionalidad de "Pattern.quote" de Java en un JavaScript RegExp [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Existe una función RegExp.escape en Javascript? 12 respuestasEn Java, puede intentar crear una expresión regular que coincida con la URLstackoverflow.com
utilizandoPattern.compile("stackoverflow.com")
. Pero esto estaría mal porque el.
tiene un significado especial en expresiones regulares. La forma más fácil de arreglar esto es escribirPattern.compile(Pattern.quote("stackoverflow.com"))
que sale a:Pattern.compile("\\Qstackoverflow.com\\E")
cual"cita" toda la cadena.
Quiero hacer lo mismo en JavaScript, pero las expresiones regulares de JavaScript no asignan ningún significado a\Q
y\E
y no parece que haya un equivalente de JavaScript, así que no estoy seguro de cómo hacerlo. Mi primer pensamiento (vea mi respuesta a continuación) es poner una barra diagonal inversa antes de cualquier carácter que tenga un significado especial en una expresión regular de JavaScript, pero esto parece potencialmente propenso a errores y sospecho que alguien podría conocer una mejor manera.
Esto es para una extensión de Firefox, por lo que las soluciones específicas de Mozilla están bien.