Wie kann man Sonderzeichen mit regulärem Ausdruck mit JavaScript umgehen?

Ich muss den Sonderzeichen des regulären Ausdrucks mit Java-Skript entkommen.Wie kann ich das erreichen? Jede Hilfe sollte geschätzt werden.


Danke für Ihre schnelle Antwort. Aber ich muss alle Sonderzeichen des regulären Ausdrucks entkommen. Ich habe versucht, durch diesen Code, aber ich kann das Ergebnis nicht erreichen.

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(RegExp.escape("[Munees]waran"));  alert("Reg : "+regex); } 

Was ich falsch mit diesem Code bin? Bitte führen Sie mich.

Verwenden Sie das Zeichen \ , um ein Zeichen zu umgehen, das in einem regulären Ausdruck eine besondere Bedeutung hat.

Um es zu automatisieren, könnten Sie Folgendes verwenden:

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

Update: Es gibt nun einen Vorschlag zur Standardisierung dieser Methode, möglicherweise in ES2016: https://github.com/benjamingr/RegExp.escape

Update : Der oben genannte Vorschlag wurde abgelehnt, also implementieren Sie dies selbst wenn Sie es brauchen.

Verwenden Sie den Backslash, um ein Zeichen zu umgehen. Beispielsweise:

 /\\d/ 

Dies entspricht \ d anstelle eines numerischen Zeichens

Mit \ entkommen Sie Sonderzeichen

Es werden Sonderzeichen in Literale und Literale als Sonderzeichen entfernt.

ZB: / (s) / passt ‘(s)’ an, während / (\ s) / mit einem beliebigen Leerzeichen übereinstimmt und die Übereinstimmung erfasst.

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