Probleme mit Replace
Rene Rose
- javascript
Hallo Community!
Ich stoße immer wieder auf Ungereimtheiten mit dem Replace in einerm String. Laut Beschreibung zu den regulären Ausdrücken, sollte ich wie folgt:
//Liest einen Titel aus der API
strTSDocument = collDocuments.ItemAt(i).GetDocumentTitle();
//Soll eigentlich alle Punkte gegen Unterstiche tauschen
strDocumentName = strTSDocument.replace(/./, "_" )
aus dem Titel:
Adidas-Salomon AG O.N.
erhalten:
Adidas-Salomon AG O_N_
Ich erhalte statt dessen aber:
_Didas-Salomon AG O.N.
Ist das ein spezielles Problem mit dem Pünktchen oder habe ich etwas falsch verstanden, was die Anwendung des RegExp angeht?
Hi Rene!
//Soll eigentlich alle Punkte gegen Unterstiche tauschen
strDocumentName = strTSDocument.replace(/./, "_" )
Der Punkt steht in RegEx für ein beliebiges Zeichen. In dem Fall das erste, wie auch am Ergebnis zu erkennen ist:
_Didas-Salomon AG O.N.
Ist das ein spezielles Problem mit dem Pünktchen oder habe ich etwas falsch verstanden, was die Anwendung des RegExp angeht?
Der Punkt muss escaped werden. In der Regel geschieht das per Backslash.
mfG
Benjamin
Hi Rene!
//Soll eigentlich alle Punkte gegen Unterstiche tauschen
strDocumentName = strTSDocument.replace(/./, "_" )
Der Punkt steht in RegEx für ein beliebiges Zeichen. In dem Fall das erste, wie auch am Ergebnis zu erkennen ist:_Didas-Salomon AG O.N.
Ist das ein spezielles Problem mit dem Pünktchen oder habe ich etwas falsch verstanden, was die Anwendung des RegExp angeht?
Der Punkt muss escaped werden. In der Regel geschieht das per Backslash.mfG
Benjamin
Hallo Benjamin!
Vielen Dank für die Antwort. Das erklärt einige Dinge, die mich in den vergangenen Tagen sehr verwundert haben. Könntest Du mir "escaped werden" erläutern? ich verstehe das nicht.
Hi Rene!
Könntest Du mir "escaped werden" erläutern? ich verstehe das nicht.
Escapen heißt, du musst den Escape-Character voranstellen, wenn du z.B. nach einem Punkt suchen willst. Das sieht dann so aus: /./
Beachte, dass das nur den ersten Punkt findet, wenn du alle ersetzen willst, wird der Reguläre Ausdruck etwas komplexer.
mfG
Benjamin
Benjamin, vielen Dan. Damit kann ich arbeiten. Du hast mir sehr geholfen.
Hi Rene!
Benjamin, vielen Dan. Damit kann ich arbeiten. Du hast mir sehr geholfen.
Freut mich. Ich hätte da noch einen Link, wo ganz gut beschrieben wird, wie man mehrere Instanzen ersetzen kann:
http://www.bennadel.com/blog/142-Ask-Ben-Javascript-String-Replace-Method.htm
mfG
Benjamin
Benjamin vielen Dank!!!!
Ich schreibs noch mal: Vielen Dank, weil die Seite sonst meckert :)
Ich stoße immer wieder auf Ungereimtheiten mit dem Replace in einerm String. Laut Beschreibung zu den regulären Ausdrücken, sollte ich wie folgt:
Keine Ahnung welche Beschreibungen du nutzt, vielleicht verstehst du ja selfhtml besser:
http://de.selfhtml.org/javascript/objekte/string.htm#replace
http://de.selfhtml.org/javascript/objekte/regexp.htm
(Hier ist auch die Bedeutung des Punkts erklärt)
Struppi.