Ich muss jedes einzelne Symbol und Leerzeichen mit dem Minuszeichen (-) in einer Zeichenfolge ersetzen. Ich kenne Regex noch nicht besonders gut.Wie ersetze ich alles (Leerräume/Symbole) außer Buchstaben und Zahlen in einem JavaScript-String?
0
A
Antwort
5
Verwendung negated character set:
Wenn Sie in Ordnung sind den Unterstrich zu halten, können Sie verwenden:
str.replace(/[^\w]/g, "-") // \w is the same as [A-Za-z0-9_]
Wenn Sie das auch ersetzen möchten, dann können Sie verwenden:
str.replace(/[^A-Za-z0-9]/g, "-")
Bearbeiten: Wie von @ JamesBuck erwähnt, gibt es tatsächlich negated shorthands: [^\w]
ist das gleiche wie \W
, also wenn Sie den Unterstrich nicht ersetzen müssen, Sie verwenden können, was zu:
str.replace(/\W/g, "-")
0
var str = "djdkasfh [email protected]@FA";
str.replace(/[^a-z0-9]+/gi, '-');
Ausgänge djdkasfh-da-S-FA
.
+0
Dank vieler :) – tata
Oder einfach nur '\ W' für das negiert' \ W' –
@JamesBuck Guter Fang. – timolawl
Perfekt. Ich brauchte die zweite, um die Unterstriche zu ersetzen. Vielen Dank – tata