Wie der Titel, ich brauche alle Vorkommen des $ -Zeichen in einem String-Variable mit einem Unterstrich relace.
Ich habe versucht:
str.replace(new RegExp('$', 'g'), '_');
Aber das ist für mich nicht funktioniert und wird nichts ersetzt.
Wie der Titel, ich brauche alle Vorkommen des $ -Zeichen in einem String-Variable mit einem Unterstrich relace.
Ich habe versucht:
str.replace(new RegExp('$', 'g'), '_');
Aber das ist für mich nicht funktioniert und wird nichts ersetzt.
Die $
in RegExp ist ein Sonderzeichen, so dass Sie es mit Backslash entkommen müssen.
new_str = str.replace(new RegExp('\\$', 'g'), '_');
jedoch in JS können Sie die einfachere Syntax
new_str = str.replace(/\$/g, '_');
........
str.replace(new RegExp('\\$', 'g'), '_');
Becaue $
in js spezielle Zeichen ist, müssen Sie es entkommen.
Die Sekunde ist in zwei Punkten falsch, es ersetzt '\ $', nicht '$' und es ersetzt nur ein Vorkommen, nicht ein Vielfaches. –
@Andy: Ja, klar, dass es und entfernt es bald :) Danke – Sarfraz
Sie brauchen nicht RegExp
zu verwenden. Sie können die wörtliche Syntax:
str.replace(/\$/g, '_')
Sie einfach den $
Charakter entkommen müssen, wie es ein Sonderzeichen in regulären Ausdrücken ist, die das Ende des Strings markiert.
bearbeiten Oh, können Sie auch split
und join
dieses Problem zu lösen:
str.split("$").join("_")
Wie die Split und Join-Idee - wie schnell ist es im Vergleich zu einem Regex, frage ich mich? –
Sie keine regulären Ausdrücke müssen nur ein Symbol ersetzen:
newStr = oldStr.replace('$', '_')
Der Titel gab "alle" Vorkommen an. – kennytm
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/replace – user187291
Dies ersetzt nur das erste Vorkommen des Symbols, nicht „alle“ Vorkommen. Bitte entferne diese Antwort, da es offensichtlich falsch ist – edc65
+1, gehen Sie für die wörtlichen, nicht mit dem Konstruktor stören, wenn Sie Variablen in regulären Ausdrücken verwenden müssen. –