preg_match: Nur Zahlen-Alphabete und Kommas

8

Wie schreibe ich einen regulären Ausdruck, der nur mit Zahlenalphabeten und Kommas übereinstimmt?

Ich kam mit dieser unten heraus, aber es funktioniert nicht - es akzeptiert auch andere Interpunktionszeichen!

%Vor%

Vielen Dank, Lau

    
laukok 24.09.2010, 13:22
quelle

3 Antworten

19

Sie wollen:

%Vor%

Sie benötigen den Start ^ und end $ String-Anker. Ohne sie wird die Regex-Engine nach irgendwelchen Zeichen in der Zeichenfolge suchen und wenn sie eine findet, wird sie es als Tag bezeichnen und sagen, dass es eine Übereinstimmung gibt. Mit den Ankern zwingt er den Motor, die ganze Saite zu betrachten. Grundsätzlich:

  • /[a-zA-Z0-9,]+/ stimmt überein, wenn any der Zeichen alphanumerisch + Komma ist.
  • /^[a-zA-Z0-9,]+$/ stimmt überein, wenn alle der Zeichen alphanumerisch + Komma sind.
NullUserException 24.09.2010, 13:24
quelle
9
%Vor%

Wir übergeben preg_match: /^[0-9a-z,]+$/i

Erläuterung:

  • / : Regex-Trennzeichen.
  • ^ : starte den Anker
  • [..] : Char-Klasse
  • 0-9 : beliebige Ziffer
  • a-z : ein beliebiges Alphabet
  • , : ein Komma. Komma ist keine Regex Metachar, also müssen Sie nicht entkommen
  • + : Quantifizierer für einen oder mehrere. Ob eine leere Eingabe gilt als gültig, Ändere + zu *
  • $ : Endanker
  • i : um den übereinstimmenden Fall zu erstellen unempfindlich.
codaddict 24.09.2010 13:24
quelle
1

Nun, das fügt ein paar weitere Zeichen wie Unterstreichung

hinzu

/^[\w,]*$ /

Aber das sollte funktionieren

%Vor%     
Phill Pafford 24.09.2010 13:28
quelle

Tags und Links