3 Stimmen

replaceAll in javascript und Dollarzeichen

Ich habe eine Zeichenfolge mit 3 Dollarzeichen, z. B. $$$Test123 . Ich möchte diese Zeichenfolge in einem Div anzeigen. Das Problem ist, dass ich bei der Verwendung von replace Ich bekomme $$Test123 - 2 Dollarzeichen anstelle von 3.

Beispiel:

var sHtml="<_content_>";
var s="$$$Test";
sHtml= sHtml.replace("<_content_>", s);

Nun das Ergebnis von sHtml es $$Test ;

Haben Sie eine Idee, wie das Problem gelöst werden kann?

8voto

sushil bharwani Punkte 28837

Javascript hat keine Standardfunktion zum Ersetzen aller. Sie können Ihre eigene Funktion wie folgt schreiben

function replaceAll(txt, replace, with_this) {
  return txt.replace(new RegExp(replace, 'g'),with_this);

}

3voto

Andy E Punkte 324972

$ hat eine besondere Bedeutung, wenn es in einer Zeichenkette für das zweite Argument eines Aufrufs an replace() . Normalerweise würden Sie es verwenden, um auf übereinstimmende Ausdrücke innerhalb der ursprünglichen Zeichenfolge zu verweisen. Zum Beispiel:

"foo foooo".replace(/fo+/g, "$&bar");
//-> "foobar foooobar"

Im obigen Beispiel, $& bezieht sich auf das gesamte Spiel, d. h. foo im ersten Wort und foooo in der zweiten.

Ihr Problem ergibt sich aus der besonderen Bedeutung von $ . Für die Verwendung einer wörtlichen $ im Spiel, müssen Sie zwei aneinander ketten, damit der erste dem zweiten entkommt. Um 3 buchstäbliche $ Symbolen müssen Sie 6 aneinanderreihen, etwa so:

var sHtml="<_content_>";
var s="$$$$$$Test";  
sHtml= sHtml.replace("<_content_>", s);
//-> "$$$Test"

1voto

Mark Schultheiss Punkte 30349

Zitate sind dein Freund

var sHtml="<_content_>"  
var s="$$$Test";  
sHtml= sHtml.replace("<_content_>", s);

0voto

qwerty Punkte 1

Versuchen Sie diese replaceAll-Funktion:

http://www.dumpsite.com/replaceAll.php

Es führt eine Ersetzung alle mit dem Javascript ersetzen Funktion über einen regulären Ausdruck für die Geschwindigkeit, und zur gleichen Zeit beseitigt die Nebenwirkungen, die auftreten, wenn regulären Ausdruck Sonderzeichen sind versehentlich in entweder die Suche oder ersetzen Zeichenfolge.

Mit dieser Funktion müssen Sie sich nicht um das Escapen von Sonderzeichen kümmern. Alle Sonderzeichen werden vor der Ausführung von replaceAll umbrochen.

Diese Funktion wird die erwartete Ausgabe liefern.

Probieren Sie es aus und geben Sie Ihre Meinung ab.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X