Seite 1 von 1

ereg - Format der Telefonnummer prüfen

Verfasst: 23.03.2006 19:51
von Fähnchen
Hallo,

ich suche nun seit Stunden nach einer Lösung für ein Problem.
Und zwar möchte ich die Eingabe in ein Formularfeld auf ein bestimmtest Format hin überprüfen. Das geht mit "ereg", dachte ich mir.

Ich ahbe jetzt hin und her probiert.

Eine eingegebene Telefonnummer soll das Format z.B. "+49 461 123456" haben. Inklusive Leerzeichen. Ansonstenm ist die Eingabe ungültig. Leider packe ich es aber nicht mit den Leerzeichen. Ohne Leerzeichen funktionierte es oder mit einem Bindestrich zwischen Zahlen. Aber es soll gerne ein Leerzeichen sein.

Mein aktuelle Code sieht so aus:

Code: Alles auswählen

if(!ereg("^([+][0-9][:blank:])([0-9]{2,5}[:blank:])([0-9]{3,10})$", $telefon))
{
$failure = true;
$fehler_nummern = "Ungültiges Format für Rufnummer.<br>";
}
Hat jemand eine Lösung parat wie man die Telefonnummer auf exakt das vorgegebene Format prüfen kann?

Verfasst: 23.03.2006 20:05
von Dennis63
Warum so viele Klammern?


Ich persönlich bevorzuge preg_match()
Versuche das mal.

Code: Alles auswählen

'/^\+[0-9]{1,3} [0-9]{2,5} [0-9]{3,20}$/'


Grüße
Dennis

Verfasst: 23.03.2006 20:14
von Fähnchen
Hey, du bist ein Schatz Dennis!

Code: Alles auswählen

if(!preg_match('/^\+[0-9]{1,3} [0-9]{2,5} [0-9]{3,20}$/', $telefon))
{
Das funktioniert einwandfrei, so wie es sein soll.

Danke vielmals. :grin:

Verfasst: 22.01.2008 10:50
von konne
Hallo,

ich würde gerne dieses alte Thema wieder aufgreifen, um hoffentlich meine Formatvorstellungen von euch mittels preg_match() realisiert zu bekommen.

Meine Telefonnummern sollen exakt dem folgenden Schema entsprechen:

+ Pluszeichen
1...9999 Zahl von 1 bis 9999
Leerzeichen
( Klammer auf
1...x Zahl von 1 bis unendlich
) Klammer zu
Leerzeichen
1...x Zahl von 1 bis unendlich, wobei der Ausdruck ' - ' (in Worten: Leerzeichen Bindestrich Leerzeichen) darin enthalten sein darf

Vielen Dank im voraus

Verfasst: 22.01.2008 11:07
von PhilippK
Versuch mal

Code: Alles auswählen

'/^\+[0-9]{0,3}[1-9] \([0-9]*[1-9]+\) ([0-9]| - )*[1-9]+$/'
Der hintere Teil ist sicherlich noch nicht ganz optimal...

Gruß, Philipp

Verfasst: 22.01.2008 17:34
von konne
PhilippK hat geschrieben:Versuch mal

Code: Alles auswählen

'/^\+[0-9]{0,3}[1-9] \([0-9]*[1-9]+\) ([0-9]| - )*[1-9]+$/'
Der hintere Teil ist sicherlich noch nicht ganz optimal...

Gruß, Philipp
Danke! Hat mir sehr weitergeholfen.

Verfasst: 15.09.2008 18:45
von bambi1408
Hallo,
ich weiss dieses Thema ist schon etwas älter, aber ich hoffe mir kann trotzdem jemand helfen.
Ich möchte in meinem Kontaktformular die Telefonnummer mit und ohne Leerzeichen erlauben.

Momentan ist es so gelöst:
if(preg_match('/\\A[\\d-+]{8,20}\\z/', $telefon))

Wie kann ich das mit den Leerschlägen noch einbringen?

Vielen Dank schon einmal im Voraus