239 votes

Comment échapper aux caractères spéciaux des expressions régulières en utilisant javascript?

J'ai besoin d'échapper aux caractères spéciaux d'expression régulière en utilisant le script java. Comment puis-je y parvenir? Toute aide devrait être appréciée.


Merci pour votre réponse rapide.Mais j'ai besoin d'échapper à tous les caractères spéciaux d'expression régulière.J'ai essayé par ce code, mais je ne peux pas atteindre le résultat.

 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'est-ce que je me trompe avec ce code? S'il vous plaît guide-moi.

574voto

Mathias Bynens Points 41065

Utilisez le caractère \ pour échapper à un caractère ayant une signification spéciale dans une expression régulière.

Pour l’automatiser, vous pouvez utiliser ceci:

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

19voto

Ben Rowe Points 15269

Utilisez la barre oblique inverse pour échapper à un personnage. Par exemple:

 /\\d/
 

Cela correspondra à \ d au lieu d'un caractère numérique

10voto

Claudio Redi Points 34297

Avec \ vous échappez aux caractères spéciaux

Échappe aux caractères spéciaux en caractères littéraux et aux caractères spéciaux.

Par exemple: / (s) / correspond à '(s)' tandis que / (\ s) / correspond à un espace et capture la correspondance.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X