Ersetzen Sie Pipe und Komma durch Regex in Javascript

8

Ich sitze hier mit "The Good Parts" in der Hand, aber ich bin immer noch nicht klüger.

Kann jemand eine Regex für mich einwerfen, die es mir erlaubt, irgendwelche Fälle von "|" und "," aus einer Zeichenfolge.

Könnte mich jemand auch auf eine wirklich gute Quelle zum Erlernen von regulären Ausdrücken hinweisen, besonders in Javascript (sind sie ein besonderer Geschmack?). Es ist wirklich ein Schwachpunkt in meinem Wissen.

Prost.

    
James South 17.10.2011, 15:08
quelle

2 Antworten

18

str.replace(/(\||,)/g, "replaceWith") Vergessen Sie nicht g am Ende, so dass die Zeichenfolge global gesucht wird. Wenn Sie es nicht angeben, ersetzt die Regex nur die erste Instanz der Zeichen.

Was gesagt wird ist, dass | ersetzt wird (Sie müssen dieses Zeichen verlassen) ODER ( | ) ,

Netter Cheatsheet hier

    
locrizak 17.10.2011, 15:10
quelle
7

Die beste Ressource, die ich gefunden habe, wenn Sie reguläre Ausdrücke (und die besonderen Vorbehalte oder Macken von einer Mehrheit der Implementierungen / Aromen) wirklich verstehen möchten, ist Regular-Expressions.info .

Wenn Sie wirklich in reguläre Ausdrücke kommen, würde ich das Produkt mit dem Namen RegexBuddy zum Testen und Debuggen regulärer Ausdrücke in allen möglichen Sprachen empfehlen (obwohl es ein paar Dinge gibt, die nicht wirklich unterstützen) ist insgesamt ziemlich gut)

Bearbeiten:

Der beste Weg (ich denke vor allem, wenn Sie die Lesbarkeit in Betracht ziehen) ist die Verwendung einer Zeichenklasse statt einer Alternation (z. B. [] anstelle von | )

verwenden:

%Vor%

Dies ersetzt entweder ein | oder ein , durch ein Semikolon

Die Zeichenklasse bedeutet im Wesentlichen "Passe alles innerhalb dieser eckigen Klammern an" - mit wenigen Ausnahmen.

  • Zuerst können Sie Zeichenbereiche angeben ( [a-zA-Z] bedeutet einen beliebigen Buchstaben von a bis z oder von A bis Z ).
  • Zweitens, wenn ein Caret ( ^ ) am Anfang der Zeichenklasse gesetzt wird negiert es - es bedeutet alles nicht in dieser Zeichenklasse ( [^0-9] bedeutet ein beliebiges Zeichen, das nicht von 0 bis 9 ).
  • stammt
  • setze den Bindestrich auf den Anfang und den Caret am Ende der Zeichenklasse, um diese Zeichen wörtlich zu finden, oder entkomme sie irgendwo anders in der Klasse mit einem \ , wenn du
  • bevorzugst
Code Jockey 17.10.2011 15:43
quelle

Tags und Links