Ersetzen Sie Sonderzeichen in einer Zeichenfolge durch _ (Unterstrich)


89

Ich möchte Sonderzeichen aus einer Zeichenfolge entfernen und durch das _Zeichen ersetzen .

Beispielsweise:

string = "img_realtime_tr~ading3$"

Die resultierende Zeichenfolge sollte wie folgt aussehen: "img_realtime_tr_ading3_";

Ich muss diese Zeichen ersetzen: & / \ # , + ( ) $ ~ % .. ' " : * ? < > { }


47
Warum ist das geschlossen, es ist eine gute Frage. Ersetzen von Sonderzeichen, nützlich beim Erstellen von SE-freundlichen URLs. Zum Glück hat noch jemand darauf geantwortet.
Fahrrad

1
Eine außerordentlich enge Situation, die für das weltweite Internetpublikum nicht allgemein anwendbar ist? Sagen wir einfach, dass mindestens 108 Personen anders gedacht haben.
Antoine Pelletier

1
Geschlossen ? Ziemlich nützlich beim Scraping schmutziger Daten.
Stanislasdrg Reinstate Monica

Dies sollte nicht geschlossen werden
Mustkeem K

Antworten:


204
string = string.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g,'_');

Um alle Zeichen außer Zahlen und Buchstaben zu ändern, versuchen Sie alternativ:

string = string.replace(/[^a-zA-Z0-9]/g,'_');

Cool! !fehlt allerdings in der ersten Zeile.
ProblemsOfSumit

4
Die zweite Zeile ist in mehreren Fällen sehr nützlich.
Mastazi

\-und =auch vermisst :)
Simo D'lo Mafuxwana

2
Wenn Sie einen hello! wordhello__wordstring = string.replace(/[^a-zA-Z0-9]/g,'_').replace(/__/g,'_');
Sondercharakter

2
@DannyFeliz oder auch string = string.replace(/[^a-zA-Z0-9]/g,'_').replace(/_{2,}/g,'_');wenn Sie nicht wissen, wie viele aufeinanderfolgende Unterstriche
falkodev

1
string = string.replace(/[\W_]/g, "_");
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.