preg_match() und Benutzername
function isUserID($username) {
if (preg_match('/^[a-z\d_]{2,20}$/i', $username)) {
return true;
} else {
return false;
}
}
Einfach ein.., ich habe diese, können Sie erklären, was es überprüft? Ich weiß, es wird überprüft ob der Benutzername Länge zwischen 2-20, was mehr? Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Er sucht nach text, enthält nur alphanumerische Zeichen und Unterstrich-Zeichen, die aus 2 bis 20 Zeichen lang sein.
Spleißen: ein
/
ist die regex delimiter; Sie können wählen, was Sie wollen, aber ein Schrägstrich ist die am häufigsten ein.^
bedeutet "mit Beginn der Eingabe': Der folgende Ausdruck muss am Anfang der regex entsprechen.[a-z\d_]
ist ein Charakter-Klasse; es bedeutet "alle Zeichen zwischen den eckigen Klammern'; der backslash in Kombination mit dem d ist eine Abkürzung für 'digits', und der Strich zeigt einen inklusiven Bereich, so dass die Charakter-Klasse der sagt, 'einen beliebigen Buchstaben oder eine Ziffer oder der Unterstrich'.{2;20}
ist ein Quantifizierer, der sagt, dass der vorhergehende Ausdruck (Charakter-Klasse) muss wiederholt werden, 2-bis 20-mal.$
bedeutet "match end of input", ähnlich ^.Anderen
/
beendet die regex selbst; was folgt, sind Prozession Optionen, in diesem Falli
, was bedeutet, dass 'case-insensitive'.Überprüft, um zu sehen, dass der Benutzername besteht aus 2 bis 20 Zeichen, Buchstaben (groß-oder Kleinbuchstaben Dank der
i
flag), zahlen oder ein Unterstrich.Dies kann abgekürzt werden, in zweierlei Hinsicht: Erstens, die
if
konstruieren, ist überflüssig. Zweitens, können Sie\w
als Ersatz für die gleichen Zeichen, so:Es buchstäblich prüft, ob
$username
besteht aus einer Sequenz von 2 bis 20 Zeichen dera
-z
,A
-Z
(wegen der ich flag für den Fall, Unempfindlichkeit),0
-9
(für\d
), und_
.Es ist auch zu prüfen, ob es enthält andere Zeichen als die Buchstaben, a-z und A-Z, die Ziffern 0-9, - und _.
Oder man könnte sagen, die überprüfung, dass es enthält nur alphanumerische Zeichen und"_".
Dies könnte umgeschrieben werden, um einfacher zu sein, zu preg_match liefert ein int, ist so dass es keinen Grund gibt, verwenden Sie die 'return false return true" - Muster.
Würde das gleiche tun.
Auch
\w
bedeutet das gleiche wie die Zeichen. Buchstaben, Ziffern und dem Unterstrich bestehen. Also noch besser wäre es,Ist es für die überprüfung einer 2-20 Zeichen lang sein groß-und Kleinschreibung alphanumerischen Wort, das aus Buchstaben, zahlen und _
Bitte verwenden, ersetzen Sie Ihren Benutzernamen Validierungs-code.
%£¨#{;;;,:!§/A
als gültig, nicht sicher, ob es wollte. Aber das ist nicht die Frage, Sie möchten eine Erklärung zu den regex.