In ons leden bestand staan de telefoonnummers in verschillende notaties als:
Tel.: 1234 - 567890
Tel: 123 -4567890
Telf: 123-4567890
Telefoon 1234 - 4567890
enz.

Hoe schrijf ik nu een functie met preg_match (denk ik) die alleen de cijfers eruit haalt en deze schrijft als:
xxx-xxxxxxx of xxxx-xxxxxx (ligt aan kerngetal)
Hoe weet je de lengte van het kengetal?
Obelix en Idefix op 14/09/2014 13:44:42

Hoe weet je de lengte van het kengetal?


Niet, ik wil alleen aangeven dat het streepje dus niet een vaste plaats heeft.
Staat in elk telefoonnummer 1 streepje?
Hoe wil je anders bepalen waar het streepje komt te staan?
Staat er altijd een spatie tussen de "telefoon" en het nummer? Zoja, dan zou je kunnen exploden op de spatie.
Gewoon alles wat geen getal is er uit filteren.

Zolang het nederlandse telefoonnummers zijn houd je dan altijd 10 cijfers over, zelfs bij 06 nummers.
Waar het streepje staat is volkomen irrelevant, de 10 cijfers na elkaar invoeren werkt altijd, ongeacht wat het netnummer is of in welkeregio je jezelf bevindt, of je een vaste telefoon of een mobiel gebruikt.
Inmiddels ben ik er zelf uitgekomen door d+ in preg_match_all te ontdekken, die kende ik niet.
Voor de liefhebbers:

$T = "Tel.: 123 - 4567890 // voorbeeld
if(preg_match_all('/\d+/', $T, $Match))
{
  foreach( $Match[0] as $t )
  {
     echo $t;
  }
}
@ PipoClown: behalve 112, 114, 1888, 9191, 0800, 0900 en zo zijn er nog wel een aantal.

Reageren