preg_match Ausdruck für Telefonnummern
Ich soll eine Fehlermeldung angezeigt werden, wenn die Anzahl nicht übereinstimmt, jede Zahl mit Bindestrich, plus-Zeichen, Leerzeichen oder Klammern. Keine zahlen, die entweder.
Beispiel:
(012) 123 4567
(012)-123-4567
012-345-6789
123 123 1234
+12 23 213 3456
Die oben genannten Beispiele alle arbeiten mit diesem Ausdruck:
if (!preg_match("/^[0-9\-]|[\+0-9]|[0-9\s]|[0-9()]*$/", $_POST['tel'])) {
$telErr = "Invalid contact number";
}
Aber es ermöglicht die Buchstaben, die ich nicht will.
Beispiel:
+00000000a
Dem obigen Beispiel wird angenommen, indem der Ausdruck, den ich habe.
Bitte kann mir jemand helfen mit diesem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Ausdruck akzeptiert +5number, 5number
Besseren regulären Ausdruck ist:
Ich das erste Bereinigung der string ein wenig (das vermeidet unnütze Treffer):
Als ich mit einer amerikanischen Nummer +1 (xxx) xxx-xxxx;
dies ermöglicht für einige input-Konfigurationen - nur Ihre Letzte Nummer würde nicht mit (wenn ich das nicht tun, die Bereinigung zunächst nicht, weil der internationale code, der angepasst ist, aber wegen der Spaltung in der Gegend-code) alle anderen gehen auch ohne cleanup.