Ich habe das geschrieben regex
zum Überprüfen der Eingangsnummer aus meinem Formular:
if (!preg_match("/^0d{10}+|^9d{9}+/",$_POST["number"])){
echo "Error";
}else{
echo "Ok";
}
Dieser Code überprüft die minimale Länge, aber wenn die Länge mehr als 10 oder 9 Zeichen beträgt, kann diese Regex nicht funktionieren!
Was soll ich machen ? Soll ich mit überprüfen strlen
nach Regex oder ich kann die maximale Länge begrenzen?
AKTUALISIEREN:
Die Stringlänge sollte genau 10 Zeichen lang seinwenn es mit 0 beginnt und genau 9 Zeichen lang sein sollte, wenn es mit 9 beginnt, sollte es auf eine andere Weise falsch sein (mehr oder weniger Länge, beginnen Sie mit verschiedenen Zahlen und ...)
Antworten:
0 für die Antwort № 1Möglicherweise möchten Sie die Saite nur am Ende mit Hilfe von verankern $
. Kann auch fallen lassen +
nach dem numerischen Quantifizierer:
^(?:0d{9}|9d{8})$
0 für die Antwort № 2
Sie können diese Regex verwenden:
"/^(0d{9}|9d{8})$/"
Dadurch wird die Zeichenfolge Länge genau 10 Zeichen, wenn es mit 0 beginnt und genau 9 Zeichen sein sollte, wenn die Eingabe mit 9 beginnt.