[php] Telefoonnummer controleren

Pagina: 1
Acties:
  • 8.407 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 09:04
Wat is de beste regex om een telefoonnummer te controleren? Wil graag nederlandse, belgische en duitse telefoonnummers controleren. Heb deze regex gemaakt.
PHP:
1
<?if(!ereg("^[0-9]{2,4}-[0-9]{6,8}$",$_POST['telefoon']))           echo "Telefoonnummer is geen geldig nummer";?>

Iemand misschien een betere versie?

Acties:
  • 0 Henk 'm!

Verwijderd

maak in je formulier een veld voor het land en maak voor elk land een apparte regexp

dat scheelt al heel wat werk.

Acties:
  • 0 Henk 'm!

Verwijderd

dat kan je denk ik (weet het niet zeker) niet met 1 regex controleren. want in nederland kunnen er 3 of 4 cijfers voor de - zijn, en dan ook 6 of 7, afhankelijk van het aantal cijfers voor de -. Voor belgische en duitse weet ik het niet... Eigenlijk zou het dus moeten zijn:
PHP:
1
<?if((!ereg("^[0-9]{3}-[0-9]{7}$", $_POST["telefoon"])) || (!ereg("^[0-9]{4}-[0-9]{6}$", $_POST["telefoon"]))({    print "wrong";}?>

(bijvoorbeeld)

Acties:
  • 0 Henk 'm!

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 09:04
Op woensdag 15 mei 2002 19:16 schreef jurriebur het volgende:
dat kan je denk ik (weet het niet zeker) niet met 1 regex controleren. want in nederland kunnen er 3 of 4 cijfers voor de - zijn, en dan ook 6 of 7, afhankelijk van het aantal cijfers voor de -. Voor belgische en duitse weet ik het niet... Eigenlijk zou het dus moeten zijn:
PHP:
1
<?if((!ereg("^[0-9]{3}-[0-9]{7}$", $_POST["telefoon"])) || (!ereg("^[0-9]{4}-[0-9]{6}$", $_POST["telefoon"]))({    print "wrong";}?>

(bijvoorbeeld)
Mooi bedacht, maar wat nu als ik een mobiel nummer door geef? Werkt niet. Werkt met mijn versie wel.

Acties:
  • 0 Henk 'm!

Verwijderd

in jouw/jullie versie kan een telefoonnummer ook met een niet 0 beginnen. Bovendien mag iemand niet een telefoonnummer zonder - invullen. Ik vind het eerlijk gezegd een beetje onzinnig om zo strak op een telefoonnummer te checken, want niet bestaande nummers als 0100-100000 kan je toch nooit afvangen.

Acties:
  • 0 Henk 'm!

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 20:49
Als je meerdere regexes nodig hebt voorhetzelfde is het eigenlijk al slecht... :{

Acties:
  • 0 Henk 'm!

Verwijderd

Even vlug een schets: iets als dit?
/^0(6[\s-]?[1-9]\d{7}|[1-9]\d[\s-]?[1-9]\d{6}|[1-9]\d{2}[\s-]?[1-9]\d{5})$/

Ik heb geen idee hoe de belgische en duitse nummers eruit zien. En het is zeker wel mogelijk om dit met een enkele regular expression te doen. En je hebt wel alternation nodig als je dit redelijk goed wilt doen.

Acties:
  • 0 Henk 'm!

  • SJR
  • Registratie: Januari 2000
  • Laatst online: 09-09 13:29

SJR

Ik heb een tijdje geleden deze regex in elkaar gezet:
code:
1
/^(((00|+)\d{2}|0)[ -]?((\d{2}[ -]?\d{7})|(\d{3}[ -]?\d{6})|(6[ -]?\d{8})))$/

Hij valideert (internationale) vaste en mobiele nummers, waar na het internationale- en netnummer een spatie of een streepje kan staan (maar dat hoeft niet).
Volgens mij is'ie wel goed, iemand nog opmerkingen erover?

Acties:
  • 0 Henk 'm!

Verwijderd

Op woensdag 15 mei 2002 20:54 schreef SJR het volgende:
Ik heb een tijdje geleden deze regex in elkaar gezet:
code:
1
/^(((00|+)\d{2}|0)[ -]?((\d{2}[ -]?\d{7})|(\d{3}[ -]?\d{6})|(6[ -]?\d{8})))$/

Hij valideert (internationale) vaste en mobiele nummers, waar na het internationale- en netnummer een spatie of een streepje kan staan (maar dat hoeft niet).
Volgens mij is'ie wel goed, iemand nog opmerkingen erover?
Ja, een kengetal begint volgens mij nooit met 2 nullen, en het volgnummer begint ook niet met een nul?

Acties:
  • 0 Henk 'm!

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 09:04
Op woensdag 15 mei 2002 20:58 schreef Cheatah het volgende:

[..]

Ja, een kengetal begint volgens mij nooit met 2 nullen, en het volgnummer begint ook niet met een nul?
:o

tel 0031 123456789

00 kan ook + zijn

Acties:
  • 0 Henk 'm!

  • SJR
  • Registratie: Januari 2000
  • Laatst online: 09-09 13:29

SJR

code:
1
2
3
4
5
6
/^(((00|+)\d{2}|0)[ -]?((\d{2}[ -]?\d{7})|(\d{3}[ -]?\d{6})|(6[ -]?\d{8})))$/
   :         : :     :           :           :       :
       |    |   |        |          |          |
internationaal  | evt sp of -  2 digits    3 digits    6 
00 of +   nationaal  (evt sp of -)    (evt sp of -)    (evt sp of -) 
2 digits     0         7 digits    6 digits    8 digits

ok, volgnummer kan hier nog met een 0 beginnen, dat klopt misschien nog niet

Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
Misschien is het een idee om even te kijken op de manual page van preg_match_all(), en dan bij de eerste user-contributed note.. hier staat een erg goed uitgelegd voorbeeld met telefoonnummers.

succes!

Acties:
  • 0 Henk 'm!

Verwijderd

Komt ie van mij:

Deze werkt voor alle nederlandse notaties

((^06((\s{0,1})|(\-{0,1}))[0-9]{8}$)|(^[0-9]{3,4}(\s{0,1}|\-{0,1})[0-9]{6,7}$)|(^\+{1}[0-9]{2}(\s{0,1}|\-{0,1})[0-9]{2,3}(\s{0,1}|\-{0,1})[0-9]{6,7}$))

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:03
Is het niet zo dat in België en Duitsland, net zoals in Nederland, de kiestoon is afgeschaft en je dus alleen maar de daadwerkelijke cijfers van het telefoonnummer hoeft te controleren op geldigheid? Dat zou je regexp aanzienlijk vereenvoudigen.

Acties:
  • 0 Henk 'm!

Verwijderd

Op woensdag 15 mei 2002 19:43 schreef frankschers het volgende:

[..]

Mooi bedacht, maar wat nu als ik een mobiel nummer door geef? Werkt niet. Werkt met mijn versie wel.
fijn dat je er ook bijverteld dat ie ook mobiel moet kunnen invullen ;) dat gaat meestal in een apart veld.
Ik ben het overigens wel eens met Nokia dat je foute telefoonnummers toch niet kunt afvangen. Je kunt hooguit checken of het is ingevuld of niet (dit is handig voor de klant zelf, zodat deze het niet kan vergeten) maar de verkeerde haal je er toch niet uit...

Acties:
  • 0 Henk 'm!

  • Sanjuro
  • Registratie: December 2000
  • Laatst online: 25-08 21:11
Een volgnummer begint nooit met een 0, maar kan het wel met een 1 beginnen? En zo ja waarom is heel Nederland dan omgenummeert met een 2 of een 3 ervoor?

Acties:
  • 0 Henk 'm!

Verwijderd

Op donderdag 16 mei 2002 13:47 schreef jurriebur het volgende:

[..]

fijn dat je er ook bijverteld dat ie ook mobiel moet kunnen invullen ;) dat gaat meestal in een apart veld.
Ik ben het overigens wel eens met Nokia dat je foute telefoonnummers toch niet kunt afvangen. Je kunt hooguit checken of het is ingevuld of niet (dit is handig voor de klant zelf, zodat deze het niet kan vergeten) maar de verkeerde haal je er toch niet uit...
Ja, ik ben het dus niet met jou en Nokia eens. Want waarom zou je het dan uberhaupt controlleren??? Voor de klant???
Vaak genoeg formulieren ingevuld met de grootste onzin, om bijvoorbeeld een gratis account te krijgen. En zoals ik altijd heb geleerd. Ga er van uit dat de gebruikers van je systeem echt heel dom zijn. Dan haal je de meeste fouten eruit.

Acties:
  • 0 Henk 'm!

Verwijderd

Kijk ff naar die van mij die regelt alle verschillende vaste en mobiele opties.

Tja ligt eraan wat je wilt. Je halt wel de lol eraf om alles netjes in te vullen. Ik gebruik de telefoonchecker om op een intranet ff te controlleren, ik denk dat als je dit op een internet site gebruikt je wel de helft van je aanmeldingen kwijt bent van mensen die geen zin hebben in dat moeilijke gedoe, dus dat is mooi

Acties:
  • 0 Henk 'm!

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

Overigens is de officiele notatie van telefoonnummers in Nederland (xxx)xxxxxxx, en niet xxx-xxxxxxx. Het streepje staat namelijk voor 'wachten op kiestoon', en dat is al jarenlang niet meer nodig.

Acties:
  • 0 Henk 'm!

Verwijderd

Op woensdag 15 mei 2002 19:48 schreef Nokia het volgende:
in jouw/jullie versie kan een telefoonnummer ook met een niet 0 beginnen. Bovendien mag iemand niet een telefoonnummer zonder - invullen. Ik vind het eerlijk gezegd een beetje onzinnig om zo strak op een telefoonnummer te checken, want niet bestaande nummers als 0100-100000 kan je toch nooit afvangen.
jawel stuur je een sms je met het eerste deel van je regcode
en in een mailtje het 2e deel :P

maar idd, als iemand een nep-foonnummer wilt invullen (en geen extreme "regcode" check's doet enzo vullen ze toch wel iets nep's in. Maar meestal verandert dat wel als je er een vakje bij zet 'geen spam ontvangen' ;)

Acties:
  • 0 Henk 'm!

  • Bobco
  • Registratie: Januari 2001
  • Laatst online: 30-10-2023

Bobco

I used to dream about Verona.

Op donderdag 16 mei 2002 13:51 schreef Sanjuro het volgende:
Een volgnummer begint nooit met een 0, maar kan het wel met een 1 beginnen? En zo ja waarom is heel Nederland dan omgenummeert met een 2 of een 3 ervoor?
De echte autoriteit op dit gebied is voor Nederland natuurlijk de Opta. Op hun site kun je onder meer de nummerplannen inzien voor vast en mobiel.

With the light in our eyes, it's hard to see.

Pagina: 1