Javascript Regex, um nur Buchstaben zurückzugeben

8

Meine Saite kann in Zukunft etwas wie A01, B02, C03, möglicherweise AA18 sein. Ich dachte, ich könnte eine Regex benutzen, um nur die Buchstaben zu bekommen und an meiner Regex zu arbeiten, da ich nicht viel damit gemacht habe. Ich habe diese Funktion geschrieben:

%Vor%

Mein matches ist weiterhin null. Mache ich das richtig? Mit Blick auf diesen Beitrag dachte ich, die Regex sei korrekt: Regulärer Ausdruck für nur die Zeichen az, AZ

    
Crystal 17.04.2014, 15:13
quelle

4 Antworten

3

Ihr Hauptproblem ist die Verwendung der Zeichen ^ und $ im Regex-Muster. ^ gibt den Anfang der Zeichenfolge an und $ gibt das Ende an, also sucht das Muster nach einer Zeichenfolge, die NUR eine Gruppe aus einem oder mehreren Buchstaben vom Anfang bis zum Ende von ist die Zeichenfolge.

Wenn Sie außerdem jede einzelne Instanz der Buchstaben erhalten möchten, möchten Sie das "globale" Kennzeichen ( g ) am Ende Ihres Regex-Musters einfügen: /[a-zA-Z]+/g . Wenn Sie das auslassen, wird nur die erste Instanz des Musters gefunden und dann die Suche beendet. . . das Hinzufügen wird alle Instanzen übereinstimmen.

Diese zwei Updates sollten Sie auf den Weg bringen.

BEARBEITEN:

Vielleicht möchten Sie auch match() anstatt exec() verwenden. Wenn Sie eine Zeichenfolge mit mehreren Werten haben (z. B. "A01, B02, C03, AA18" ), gibt match() sie alle in einem Array zurück, während exec() nur der ersten entspricht. Wenn es immer nur einen Wert gibt, dann ist exec() in Ordnung (und Sie benötigen auch nicht das "global" -Flag).

Wenn Sie match() verwenden möchten, müssen Sie Ihre Code-Reihenfolge nur ein wenig ändern in:

%Vor%     
talemyn 17.04.2014, 15:19
quelle
15

Sie können String#replace verwenden, um alle Nicht-Buchstaben aus der Eingabezeichenfolge zu entfernen:

%Vor%     
anubhava 17.04.2014 15:16
quelle
2

Sie sind verwirrt darüber, was das Ziel der anderen Frage war: Er wollte überprüfen, ob es nur Buchstaben in seiner Zeichenfolge gibt.

Sie müssen die Anker ^$ entfernen, die jeweils den Anfang und das Ende der Zeichenfolge entsprechen:

%Vor%

Dies entspricht dem ersten Buchstaben in Ihrer Eingabezeichenfolge.

Wenn es mehr geben könnte (dh Sie möchten mehrere Übereinstimmungen in Ihrer einzelnen Zeichenfolge), verwenden Sie

%Vor%     
Robin 17.04.2014 15:16
quelle
0

Sie können dies tun:

%Vor%     
Amit Joki 17.04.2014 15:29
quelle

Tags und Links