Telefonnummern durch Regex finden

Binio

Erfahrenes Mitglied
Ich möchte bei der Eingabe von dem Feld
"Telefonnummer"
die Eingabegültigkeit überprüfen, d.h. ob es sich wirklich um eine Tel-Nr. handel und nicht etwa eine PLZ,Hausnr oder Bestellnr.

ich möchte das folgende Eingaben als gültig erkannt werden:
(012) 12345,
(012)12345,
01234 - 1234,
01234-1234,
0123456789,
012345/12345,
012345 12345,
0049 12 123456,
+49 1234 12345,
0170-1234567,
0160/12345678


kennt da jemand wsa ?
oder muss ich jeden Fall einzeln anfangen ?
Bsp.: &(^\([0-9]{1,3}\)[0-9 ]+$)|(...)|(...)|(...)&

würde mich über ein paar Tipps freuen
 
In meinem Beispiel ist der Schrägstrich der Begrenzer, für den du in deinem Beispiel das &-Zeichen gewählt hast.
 
Aha und ich war mir 100%tig sicher das es sich um ein ESCAPE-Zeichen handelt. Ok die Ausdruck funktioniert erstmal... muss mal morgen alle Versionen durchtesten... heute ist es zu spät dafür
 
Ok nun hab ich mich in sachen Backreference schlau gemacht.
Eine nette Sache Das sind Reguläre Ausdrücke sowieso schon :)
Hab jetzt mein Ausdruck bisschen perfektioniert:

Code:
((^\(\+?\d+[\ ]*\d*\)|^\(\d+\)|^\+?\d+|^\d+)+([\-\/\ ])*(\d)+)+([:blank:])*

Er findet alle Telefonbuch kombinationen perfekt !!
Aber wie kann ich dem ganzen jetzt sagen das die kombination mindestens 6 Zeichen haben muss ?
Ich dachte da an:

Code:
((^\(\+?\d+[\ ]*\d*\)|^\(\d+\)|^\+?\d+|^\d+)+([\-\/\ ])*(\d)+){6, }([:blank:])*

Leider ist meine Idee/Ansatz nicht richtig :(
Kann mich jemand in die richtige Richtung stupsen ?
 
Hi

das würde ich nicht mit regex lösen, sondern mit strlen();
PHP:
$nummer = "040-123456";
if( strlen( $nummer ) >= 6 )
  echo 'Gültige Nummer';
else 
  echo 'Deine Telefonnummer scheint nicht gültig zu sein';

edit: Ich liebe ja das automatische Einfügen der Skypenummer :D
 
Zurück