Ich möchte eine Formularvalidierung erstellen und sicherstellen, dass Benutzer keine gefährlichen Codes in die Textfelder eingeben, um sie zu verwenden preg_match
das zu tun. Was ich nicht mag, ist, dass Benutzer etwas tippen (etwas anstatt Wörter von A-Z, Wörter von A-Z und Zahlen). Wie kann ich jetzt verwenden? preg_match
Hier?
Antworten:
3 für die Antwort № 1Dieser Regex erlaubt nur Buchstaben und Zahlen.
/^[A-Zd]+$/i
wird in preg_match verwendet
if(preg_match("/^[A-Zd]+$/i", $string)) {
echo "Good";
} else {
echo "Bad";
}
Regex101 Demo: https://regex101.com/r/wH4uQ3/1
Das ^
und $
erfordern die gesamte Übereinstimmung der Zeichenfolge (sie sind Anker). Das []
ist eine Zeichenklasse, die bedeutet, dass ein beliebiges Zeichen zulässig ist. Das +
bezeichnet ein oder mehrere der vorhergehenden Zeichen / Gruppen (dies wird als Quantifizierer bezeichnet) Das A-Z
ist ein Bereich, den die Zeichenklasse als Buchstaben versteht a-z
. d
ist eine Zahl. Das /
s sind Trennzeichen, die angeben, wo der Regex beginnt und endet. Das i
ist ein Modifikator, der die Groß- / Kleinschreibung unempfindlich macht (könnte das entfernen und hinzufügen a-z
Kleinbuchstaben sind ebenfalls erlaubt).
PHP Demo: https://eval.in/486282
Hinweis Die PHP-Demo schlägt fehl, weil Leerzeichen nicht zulässig sind h
oder s
in der Zeichenklasse (der s
beinhaltet h
also keine Notwendigkeit für beide; h
ist für horizontale Räume.).
-1 für die Antwort № 2
Hier ist ein einfaches Beispiel:
Sie können mehr unter: http://php.net/manual/en/function.preg-match.php
Sie können dies auch tun: $email = htmlspecialchars($_POST["email"]);
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}