Vinzenz Mai: Regex Telefonnummern nach DIN 5008

Beitrag lesen

Hallo henman,

ich habe einen Regex geschrieben, der Telefonnummern über preg_match nach DIN 5008 hin untersucht. Er findet auch immer die richtige Lösung, allerdings sehen zwei Augen weniger als 2*x, darum würde ich euch bitten, mal drüber zu schauen.

/^(+[0-9]{1,} |0)[1-9]{2,} [0-9]{2,}(-[0-9]{1,}|)$/

ist nicht korrekt.

  
    $subject = '112'; # [link:http://de.wikipedia.org/wiki/Notrufnummer@title=Notrufnummer], selbstverständlich gültig nach DIN 5008  
    $pattern = '/^(\+[0-9]{1,} |0)[1-9]{2,} [0-9]{2,}(\-[0-9]{1,}|)$/';  
    echo preg_match($pattern, $subject);  
    // gibt 0 aus => Fehler  

Als Übung ist ein RegExp für DIN 5008 sicher sinnvoll. Für den praktischen Einsatz meiner Meinung nach nicht. Benutzer zwingen zu wollen, Telefonnummern nach einer bestimmten DIN einzugeben, vergrault diese und hilft keinem.

Was ist mit Vanity-Nummern?

Freundliche Grüße

Vinzenz