2012-11-12 13 views

Antwort

18

Es gibt keine replaceAll in JavaScript: die Fehlerkonsole wahrscheinlich einen Fehler berichtet Aufmerksamkeit .. bezahlen!

Verwenden Sie stattdessen die /g ("entsprechen global") in Kombination mit einem regulären Ausdruck Argument replace:

var a="::::::"; 
a = a.replace(/:/g,"hi"); 
alert(a); 

Die in MDN: String.replace bedeckt ist (und anderswo).

+0

Warum funktioniert dieser Code nicht var a = ":):) ::::"; a = a.replace (/:)/g, "hi"); Warnung (a); –

+1

@VishnuChid Weil '/:)/g' ein ungültiges reguläres Ausdrucksliteral ist (es wird wegen der" zusätzlichen "schließenden Klammer zu einem SyntaxError führen). Probieren Sie stattdessen '/: \)/g' aus. Bitte lesen Sie die Fehlermeldungen und seien Sie präzise über Fehlermeldungen - "nicht funktioniert" und "funktioniert nicht" sind sehr vage. –

+0

Ich bekomme SyntaxError: fehlt) nach der Argumentliste für /: \)/g, bitte helfen, und was ist das Thema, über das ich lesen sollte für die Verwendung von Schrägstrichen ?? –

6

Es gibt keine replaceAll Funktion in JavaScript.

Sie einen regulären Ausdruck mit einer globalen Kennung in pst Antwort, wie gezeigt verwenden:

a.replace(/:/g,"hi");

Eine Alternative, die einige Leute bevorzugen, da es die Notwendigkeit für reguläre Ausdrücke eliminiert verwenden JavaScript-split und join Funktionen like so:

a.split(":").join("hi"); 

Es ist erwähnenswert, der zweite Ansatz ist jedoch langsamer.

+2

+1 für die "Split" -Lösung. – elclanrs

+0

+1 für die Split-Lösung –