Ich möchte alle Vorkommen eines Punktes ( .
) in einer JavaScript-Zeichenfolge ersetzen
Zum Beispiel habe ich:
var mystring = 'okay.this.is.a.string';
Ich möchte bekommen : okay this is a string
.
Bisher habe ich versucht:
mystring.replace(/./g,' ')
Dies führt jedoch dazu, dass alle Zeichenfolgen durch Leerzeichen ersetzt werden.
javascript
string
replace
Omar Abid
quelle
quelle
Antworten:
Sie müssen dem entkommen,
.
weil es in einem regulären Ausdruck die Bedeutung eines "beliebigen Zeichens" hat.quelle
g
Modifikator am Ende des Ausdrucks verwendet. Betrachten Sie es als (g) lobal.Eine weitere Lösung, die leicht zu verstehen ist :)
quelle
Schneller als Regex ...
EDIT:
Vielleicht habe ich zu der Zeit, als ich diesen Code gemacht habe, jsperf nicht benutzt. Aber am Ende ist eine solche Diskussion völlig sinnlos, der Leistungsunterschied ist die Lesbarkeit des Codes in der realen Welt nicht wert, daher ist meine Antwort immer noch gültig, auch wenn die Leistung vom Regex-Ansatz abweicht.
EDIT2:
Ich habe eine Bibliothek erstellt, mit der Sie dies über eine fließende Oberfläche tun können:
Siehe https://github.com/FagnerMartinsBrack/str-replace .
quelle
str.toLowerCase()
aus Leistungsgründen wahrscheinlich aus der Schleife verschieben. Außerdem ist die Bearbeitung der Zeichenfolge, nach der Sie suchen, wahrscheinlich nicht optimal. Ich habe eine Antwort mit einer modifizierten Version gepostet: stackoverflow.com/questions/2390789/…quelle
Für dieses einfache Szenario würde ich auch empfehlen, die in Javascript integrierten Methoden zu verwenden.
Sie könnten dies versuchen:
Schöne Grüße
quelle
Ich füge dem Punkt einen doppelten Backslash hinzu, damit er funktioniert. Jubeln.
quelle
Dies ist prägnanter / lesbarer und sollte eine bessere Leistung erbringen als die von Fagner Brack veröffentlichte (toLowerCase wird nicht in einer Schleife ausgeführt):
Verwendungszweck:
quelle
quelle
replaceAll('&', '&')
? (&
damit der Schleife nie die zu ersetzenden Dinge ausgehen (und die Zeichenfolge wächst weiter). Ich habe es gerade versucht und es hat meinen Browser gesperrt ...Hier ist eine weitere Implementierung von replaceAll. Hoffe es hilft jemandem.
Dann können Sie es verwenden:
var myText = "Mein Name ist George";
var newText = myText.replaceAll ("George", "Michael");
quelle
string.split(stringToFind).join(stringToReplace)
Beispiel: Ich möchte alle doppelten Anführungszeichen (") durch einfache Anführungszeichen (') ersetzen. Dann sieht der Code so aus
quelle
@ scripto ist etwas prägnanter und ohne
prototype
:So stapelt es sich: http://jsperf.com/replace-vs-split-join-vs-replaceall/68
quelle
quelle
quelle
Sie können alle Vorkommen von Zeichenfolgen / Zeichen mithilfe des RegExp-Javasscript-Objekts ersetzen.
Hier ist der Code,
quelle
quelle
createTextNode