preg_match () und Benutzername

7
%Vor%

Easy one .., ich habe das, können Sie erklären, was es überprüft? Ich weiß es überprüft, ob der Benutzername eine Länge zwischen 2-20 hat, was mehr? Danke

    
Karem 31.07.2010, 21:13
quelle

6 Antworten

26

Es wird nach Text gesucht, der nur alphanumerische Zeichen und Unterstriche von 2 bis 20 Zeichen enthält.

%Vor%     
Dagg Nabbit 31.07.2010, 21:22
quelle
2
%Vor%

Splicing it up:

/ ist der Regex-Begrenzer; Sie können wählen, was Sie wollen, aber ein Schrägstrich ist der häufigste.

^ bedeutet "Anfang der Eingabe anpassen": Der folgende Ausdruck muss am Anfang stehen, damit die reguläre Zeichenfolge übereinstimmt.

[a-z\d_] ist eine Zeichenklasse; es bedeutet "irgendeines der Zeichen zwischen den eckigen Klammern"; der Backslash in Kombination mit dem d ist eine Abkürzung für 'digits', und der Bindestrich zeigt einen inklusiven Bereich an; Daher sagt die Zeichenklasse "irgendeinen Buchstaben oder eine Ziffer oder den Unterstrich".

{2;20} ist ein Quantifizierer, der besagt, dass der vorhergehende Ausdruck (die Zeichenklasse) 2 bis 20 mal wiederholt werden muss.

$ bedeutet "Übereinstimmung Ende der Eingabe", ähnlich wie bei ^.

Ein weiterer / beendet die Regex selbst; Was folgt, sind Prozession Optionen, in diesem Fall i , was "case-insensitive" bedeutet.

    
tdammers 31.07.2010 21:22
quelle
1

Es wird überprüft, ob der Benutzername aus 2 bis 20 Zeichen besteht, die Buchstaben (Groß- oder Kleinbuchstaben, dank des i -Flags), Zahlen oder Unterstrichen sind.

Dies kann auf zwei Arten abgekürzt werden: Erstens ist das if -Konstrukt unnötig. Zweitens können Sie \w als Ersatz für die gleichen Zeichen verwenden, also:

%Vor%     
cletus 31.07.2010 21:19
quelle
0

Es wird buchstäblich geprüft, ob $username aus einer Folge von 2 bis 20 Zeichen von a - z , A - Z besteht (wegen des i Flags für case) Unempfindlichkeit), 0 - 9 (für \d ) und _ .

    
Gumbo 31.07.2010 21:19
quelle
0

Es wird auch geprüft, ob es andere Zeichen als das Alphabet, a-z und A-Z, die Ziffern 0-9 und _ enthält.

Oder Sie könnten sagen, dass es nur alphanumerische Zeichen und _ enthält.

Das könnte auch einfacher geschrieben werden - preg_match gibt einen int zurück, also gibt es keinen Grund, das 'return false, return true' Muster zu verwenden.

%Vor%

Würde das Gleiche tun.

\w bedeutet auch dasselbe wie diese Zeichen. Buchstaben, Ziffern und Unterstriche. Also noch besser wäre

%Vor%     
JAL 31.07.2010 21:16
quelle
0

Es wird nach alphanumerischen Zeichen mit einer Länge von 2 bis 20 Zeichen gesucht, die aus Buchstaben, Zahlen und _

bestehen     
txwikinger 31.07.2010 21:26
quelle

Tags und Links