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.