¿Cómo escapar de los caracteres especiales de una expresión regular usando javascript? [duplicar]

Resuelto Muneeswaran Balasubramanian asked hace 14 años • 0 respuestas

Necesito escapar de los caracteres especiales de la expresión regular usando un script java. ¿Cómo puedo lograr esto? Se agradecería cualquier ayuda.


Gracias por su rápida respuesta, pero necesito escapar de todos los caracteres especiales de la expresión regular. Lo intenté con este código, pero no puedo lograr el resultado.

RegExp.escape=function(str)
            {
                if (!arguments.callee.sRE) {
                    var specials = [
                        '/', '.', '*', '+', '?', '|',
                        '(', ')', '[', ']', '{', '}', '\\'
                    ];
                    arguments.callee.sRE = new RegExp(
                    '(\\' + specials.join('|\\') + ')', 'gim'
                );
                }
                return str.replace(arguments.callee.sRE, '\\$1');

            }

function regExpFind() {
            <%--var regex = new RegExp("\\[munees\\]","gim");--%>
                    var regex= new RegExp(RegExp.escape("[Munees]waran"));
                    <%--var regex=RegExp.escape`enter code here`("[Munees]waran");--%>
                    alert("Reg : "+regex);
                }

¿Qué estoy mal con este código? Por favor guíame.

Aceptado

Utilice el \carácter para escapar de un carácter que tiene un significado especial dentro de una expresión regular.

Para automatizarlo, puedes usar esto:

function escapeRegExp(text) {
  return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}

Actualización: ahora existe una propuesta para estandarizar este método, posiblemente en ES2016: https://github.com/tc39/proposal-regex-escaping

Actualización : la propuesta mencionada anteriormente fue rechazada (pero hay una reescritura en progreso para 2023), así que continúe implementándola usted mismo por ahora.

Mathias Bynens avatar Feb 16 '2012 11:02 Mathias Bynens

Utilice la barra invertida para escapar de un carácter. Por ejemplo:

/\\d/

Esto coincidirá con \d en lugar de un carácter numérico

Ben Rowe avatar Jun 25 '2010 02:06 Ben Rowe

Contigo \escapas personajes especiales

Escapa de caracteres especiales a caracteres literales y literales a especiales.

Por ejemplo: /\(s\)/coincide con '(s)' mientras /(\s)/coincide con cualquier espacio en blanco y captura la coincidencia.

Fuente: http://www.javascriptkit.com/javatutors/redev2.shtml

Claudio Redi avatar Jun 25 '2010 02:06 Claudio Redi