wake-up-neo.net

jQuery entfernt Sonderzeichen aus Zeichenketten und mehr

Ich habe eine Zeichenfolge wie diese:

var str = "I'm a very^ we!rd* Str!ng.";

Ich würde gerne alle Sonderzeichen aus der obigen Zeichenfolge entfernen und Leerzeichen und, falls sie eingegeben werden, Unterstriche durch ein - Zeichen ersetzen.

Die obige Zeichenfolge würde nach der "Umwandlung" so aussehen:

var str = 'im-a-very-werd-strng';
50
Roel

replace(/[^a-z0-9\s]/gi, '') filtert die Zeichenfolge nur auf alphanumerische Werte und replace(/[_\s]/g, '-') ersetzt Unterstriche und Leerzeichen durch Bindestriche:

str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-')

Source für Regex: RegEx für Javascript, um nur alphanumerische Zeichen zuzulassen

Hier ist eine Demo: http://jsfiddle.net/vNfrk/

107
Jasper

Angenommen mit "speziell" meinen Sie Nicht-Word-Zeichen, dann ist das ziemlich einfach.

str = str.replace(/[_\W]+/g, "-")
23
Ilia G
str.toLowerCase().replace(/[\*\^\'\!]/g, '').split(' ').join('-')
13
Grace Shao

Entfernen Sie Zahlen, Unterstriche, Leerzeichen und Sonderzeichen aus dem String-Satz.

str.replace(/[0-9`[email protected]#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,'');

Demo

1

Da ich Jaspers Antwort nicht kommentieren kann, möchte ich auf einen kleinen Fehler in seiner Lösung hinweisen: 

str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');

Das Problem ist, dass der erste Code alle Bindestriche entfernt und dann versucht, sie zu ersetzen :) Sie sollten die Ersetzungsaufrufe umkehren und außerdem einen Bindestrich hinzufügen, um den zweiten Regex zu ersetzen. So was:

str.replace(/[_\s]/g, '-').replace(/[^a-z0-9-\s]/gi, '');
1
Marko Sulamägi

Entfernen/Ersetzen Sie alle Sonderzeichen in Jquery:

Wennstr = Mein Name ist "Ghanshyam" und "Java" -Hintergrund 

und möchte alle Sonderzeichen (") entfernen und dann verwenden

str = str.replace (/ "/ g, '')

Ergebnis: Ich heiße Ghanshyam und habe Java-Hintergrund

Wobei g Global @Thanks bedeutet

0
ghanshyam singh