Ich versuche, den regulären Ausdruck herauszufinden, der mit jedem Zeichen übereinstimmt, das kein Buchstabe oder keine Zahl ist. Also Zeichen wie (,, @, £, () etc ...
Einmal gefunden, möchte ich es durch ein Leerzeichen ersetzen.
Irgendein Rat.
Ich versuche, den regulären Ausdruck herauszufinden, der mit jedem Zeichen übereinstimmt, das kein Buchstabe oder keine Zahl ist. Also Zeichen wie (,, @, £, () etc ...
Einmal gefunden, möchte ich es durch ein Leerzeichen ersetzen.
Irgendein Rat.
Antworten:
Um etwas anderes als Buchstaben oder Zahlen zu finden, können Sie Folgendes versuchen:
[^a-zA-Z0-9]
Und zu ersetzen:
var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
Dieser reguläre Ausdruck entspricht allem, was kein Buchstabe, keine Ziffer oder kein Unterstrich ( _
) ist.
\W
Zum Beispiel in JavaScript:
"(,,@,£,() asdf 345345".replace(/\W/g, ' '); // Output: " asdf 345345"
Du suchst nach:
var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');
Dies ersetzt alle nicht alphanumerischen Zeichen durch ein Leerzeichen.
Das "g" am Ende ersetzt alle Vorkommen.
Anstatt az (Kleinbuchstaben) und AZ (Großbuchstaben) anzugeben, können Sie auch die Option verwenden, bei der zwischen Groß- und Kleinschreibung unterschieden wird : /[^a-z0-9]/gi
.
Dies ist viel zu spät, aber da es keine akzeptierte Antwort gibt, möchte ich die meiner Meinung nach einfachste Antwort geben: \ D - entspricht allen nichtstelligen Zeichen.
var x = "123 235-25%";
x.replace(/\D/g, '');
Ergebnisse in x: "12323525"
Siehe https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
versuche str.replace (/ [^ \ w] /); Es ersetzt alle Nicht-Alphabete und Zahlen aus Ihrer Zeichenfolge!
Bearbeiten 1: str.replace(/[^\w]/g, ' ')
str.replace(/[^\w]/g, ' ')
. Wenn Sie kein /g
Flag einfügen, wird nur das erste Vorkommen ersetzt. Und wenn Sie keine Ersatzzeichenfolge definieren, hier ein Leerzeichen ' '
, wird diese undefined
überall ersetzt. Schließlich werden Unterstriche nicht ersetzt, weil sie übereinstimmen \w
. Diese Antwort passt nicht perfekt.
Nur für andere zu sehen:
someString.replaceAll("([^\\p{L}\\p{N}])", " ");
entfernt alle Nicht-Buchstaben- und Nicht-Zahlen-Unicode-Zeichen.
replaceAll
, und die Escape- \p{..}
Eigenschaften sind nicht weit verbreitet.
Haben Sie es versucht str = str.replace(/\W|_/g,'');
, wird eine Zeichenfolge ohne Zeichen zurückgegeben, und Sie können angeben, ob nach der Pipe-Leiste ein bestimmtes Zeichen vorhanden ist |
, um sie ebenfalls abzufangen.
var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');
es wird zurückkehren str = 1324567890abcJohnDoe
oder suchen Sie nach Ziffern und Buchstaben und ersetzen Sie sie durch leere Zeichenfolgen (""):
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, '');
es wird zurückkehren str = '§$)% #$@';
/[A-Z]/ig
/[^A-Z]/ig
/[0-9]/g
oder/\d+/g
/[^0-9]/g
oder ist/\D+/g
/[^A-Z0-9]/ig
Es gibt andere mögliche Muster
Um etwas anderes als Buchstaben oder Zahlen oder Buchstaben mit Diakritika wie é
diesen abzugleichen, können Sie Folgendes versuchen:
[^\wÀ-úÀ-ÿ]
Und zu ersetzen:
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');
Inspiriert vom Top Post mit Unterstützung für Diakritika
\w
ist für[a-zA-Z0-9_]
Wortzeichen und ist genau das gleiche wie (beachten Sie, dass der Unterstrich als Wortzeichen betrachtet wird.) ... also wäre die Abkürzungstr.replace(/[^\w]/g, ' ')