gudn tach!
[...] nicht nach Norm, sondern so, wie Leute es aufschreiben [...]
ack.
allerdings nutzen einige leute leerzeichen zur zifferngruppierung auch schon in den 5-stelligen vorwahlnummern und setzen nach der vorwahl einen bindestrich.
wuerde man das auch noch beruecksichtigen, wuerde der ausdruck halt noch etwas groesser oder man beschraenkt sich letztlich einfach auf
/^+?\d[0-9 /-]+\d\z/ ;-)
- eine Rufnummer (1. Ziffer keine 0, afaik bis zu 8 Ziffern, oft mit Leerzeichen dazwischen gruppiert)
[1-9](?: ?[1-9]){3,7}
ein typo: [1-9](?: ?[0-9]){3,7}
^ 0 statt 1
(die Forderung nach 1 + 3 Ziffern mindestens schließt 110, 112, 911 und ähnliche aus
...und auch einige rufnummern. zumindest 2001 gab es noch private 3-stellige rufnummern. hat sich das geaendert?
- eine Durchwahl (Bindestrich, bis zu 5 Ziffern, ggf. mit Leerzeichen dazwischen)
(?: ?-(?: ?[0-9]){1,5})?
also z.b. "-123 4" und "-12345" aber nicht "-123 45"?
[end-regexp]
(?:(?:+|00)[1-9][0-9]{0,3} ?)?(?:([1-9][0-9]{0,5})|0?[1-9][0-9]{0,5})(?: (?:/ ))?[1-9](?: ?[1-9]){3,7}(?: ?-(?: ?[0-9]){1,5})?
die leerzeichen vor oder nach dem slash (welches auch manchmal ein bindestrich ist) werden oft weggelassen.
und um die zifferngruppierungs-leerzeichen an beliebiger stelle zu beruecksichtigen, koennte man einfach vor dem ueberpruefen in einer kopie des strings alle leerzeichen killen und dann statt
/^(?:(?:+|00)[1-9][0-9]{0,3} ?)?(?:([1-9][0-9]{0,5})|0?[1-9][0-9]{0,5})(?: ?/ ?| )?[1-9](?: ?[0-9]){2,7}(?: ?-(?: ?[0-9]){1,5})?\z/
das etwas kuerzere
/^(?:(?:+|00)[1-9]\d{0,3})?(?:([1-9]\d{0,5})|0?[1-9]\d{0,5})[/-]?[1-9]\d{2,7}(?:-\d{1,5})?\z/
erhalten, mit dem nachteil, dass z.b. nach din formatierte nummern zwar erkannt, aber nicht mehr so leicht aufgeschluesselt werden koennten.
prost
seth