ereg - Format der Telefonnummer prüfen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Fähnchen
Ehemaliges Teammitglied
Beiträge: 2124
Registriert: 14.08.2004 23:38

ereg - Format der Telefonnummer prüfen

Beitrag 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?
Die Signatur hat Urlaub.
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag 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
Fähnchen
Ehemaliges Teammitglied
Beiträge: 2124
Registriert: 14.08.2004 23:38

Beitrag 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:
Die Signatur hat Urlaub.
Benutzeravatar
konne
Mitglied
Beiträge: 250
Registriert: 26.08.2004 15:30
Kontaktdaten:

Beitrag 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
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag 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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
konne
Mitglied
Beiträge: 250
Registriert: 26.08.2004 15:30
Kontaktdaten:

Beitrag 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.
bambi1408
Mitglied
Beiträge: 1
Registriert: 15.09.2008 18:39

Beitrag 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
Antworten

Zurück zu „Coding & Technik“