Telefoonnummer kwestie...!?
Ik zit met een telefoonnummer-kwestie.
In een formulier met allerlei velden, waarvan enkele verplichte velden, is het telefoonnummer 'geen' verplicht veld.
Echter...dit veld moet natuurlijk wel worden gecontroleerd wanneer iemand dit invult. Namelijk op het feit dat er wel een telefoonnummer is ingevuld en niets anders/geks...hoe doe je dit?
Het mag leeg gelaten worden...maar moet wel worden gevalideerd als correct telefoonnummer.
Iemand een idee?
In een formulier met allerlei velden, waarvan enkele verplichte velden, is het telefoonnummer 'geen' verplicht veld.
Echter...dit veld moet natuurlijk wel worden gecontroleerd wanneer iemand dit invult. Namelijk op het feit dat er wel een telefoonnummer is ingevuld en niets anders/geks...hoe doe je dit?
Het mag leeg gelaten worden...maar moet wel worden gevalideerd als correct telefoonnummer.
Iemand een idee?
Gesponsorde koppelingen:
Gewoon aangeven of het een verplicht veld is of niet (weet niet hoe je dat doet, met bold, sterrtje of rood omrand).
Er naast zet je dan bijvoorbeeld: 012-3456789.
Met javascript kan je ook leuke dingen uithalen, zoals live inline validatie, wat ik ook aanraad om te doen.
Er naast zet je dan bijvoorbeeld: 012-3456789.
Met javascript kan je ook leuke dingen uithalen, zoals live inline validatie, wat ik ook aanraad om te doen.
Inline validatie met Javascript wil ik juist vermijden...is dat beter?
En...het aangeven dat een veld verplicht is met een 'sterretje' of zo is natuurlijk een kwestie van HTML...maar hoe zorg ik dat het veld, ondanks dat het niet verplicht is om in te vullen, toch wordt gecontrolleerd?
Dus controle op:
A- is het leeggelaten? -> no problem!
B- is het ingevuld?
B2- is het correct ingevuld?
...dat bedoelde ik...
En...het aangeven dat een veld verplicht is met een 'sterretje' of zo is natuurlijk een kwestie van HTML...maar hoe zorg ik dat het veld, ondanks dat het niet verplicht is om in te vullen, toch wordt gecontrolleerd?
Dus controle op:
A- is het leeggelaten? -> no problem!
B- is het ingevuld?
B2- is het correct ingevuld?
...dat bedoelde ik...
Code (php)
Ben niet echt bekend met REGEX (regular expression) maar dat zou volgens mij het beste zijn om een check uit te voeren.
Edit:
Misschien kan je wat op google vinden, Alleen dan zit je wel met het probleem, is het dan een mobiel nummer of een vast telefoonnummer. Dat zou dan dus betekenen dat je 2x een regex moet uitvoeren.
Misschien kan je wat op google vinden, Alleen dan zit je wel met het probleem, is het dan een mobiel nummer of een vast telefoonnummer. Dat zou dan dus betekenen dat je 2x een regex moet uitvoeren.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
Erick schreef op 13.10.2009 13:50:
Inline validatie met Javascript wil ik juist vermijden...is dat beter?
Het schrijnt dat het voor de gebruiker dan duidelijker is dat er wat mis is, aangezien die dan direct ziet dat die een fout maakt. Als je bijvoorbeeld een nul te veel doet en dan het nummer te lang maakt. Zie dit artikel.
Erick schreef op 13.10.2009 13:50:
En...het aangeven dat een veld verplicht is met een 'sterretje' of zo is natuurlijk een kwestie van HTML...maar hoe zorg ik dat het veld, ondanks dat het niet verplicht is om in te vullen, toch wordt gecontrolleerd?
Euh, gewoon zoals je aangeeft:
Erick schreef op 13.10.2009 13:50:
Dus controle op:
A- is het leeggelaten? -> no problem!
B- is het ingevuld?
B2- is het correct ingevuld?
...dat bedoelde ik...
A- is het leeggelaten? -> no problem!
B- is het ingevuld?
B2- is het correct ingevuld?
...dat bedoelde ik...
Quote:
Erick schreef op 13.10.2009 13:50
Inline validatie met Javascript wil ik juist vermijden...is dat beter?
Inline validatie met Javascript wil ik juist vermijden...is dat beter?
Het is gebruiksvriendelijker om het wel te doen, ik heb er laatst nog een artikel over gelezen.
Als de pagina eerst gaat nadenken en dan een paar seconden later zegt dat gegevens niet correct zijn haken mensen sneller af.
Het is onderzocht en daaruit is gebleken dat mensen eerder hun fouten corrigeren als ze de fout direct zien dan wanneer ze eerst een paar seconden moeten wachten.
Oke...
Javascript errorboodschappen dus...maar hoe pas je die toe op een script dat nu alleen met PHP valideert?
Javascript is voor mij iets dat ik altijd probeer te vermijden (tenzij het knip & plak werk is) omdat ik al voldoende moeite heb met PHP.
Mr Ark - jouw oplossing ziet er solide uit, ga ik proberen! Die regex-ellende kom ik wel uit...
Javascript errorboodschappen dus...maar hoe pas je die toe op een script dat nu alleen met PHP valideert?
Javascript is voor mij iets dat ik altijd probeer te vermijden (tenzij het knip & plak werk is) omdat ik al voldoende moeite heb met PHP.
Mr Ark - jouw oplossing ziet er solide uit, ga ik proberen! Die regex-ellende kom ik wel uit...
Gewijzigd op 01/01/1970 01:00:00 door Erick Schluter
Erick schreef op 13.10.2009 15:14:
Oke...
Javascript errorboodschappen dus...maar hoe pas je die toe op een script dat nu alleen met PHP valideert?
Javascript is voor mij iets dat ik altijd probeer te vermijden (tenzij het knip & plak werk is) omdat ik al voldoende moeite heb met PHP.
Javascript errorboodschappen dus...maar hoe pas je die toe op een script dat nu alleen met PHP valideert?
Javascript is voor mij iets dat ik altijd probeer te vermijden (tenzij het knip & plak werk is) omdat ik al voldoende moeite heb met PHP.
Je hebt daar ook kant en klare scripts voor. Ik zou dan wel een script zoeken die met een javascript lib. werkt. Zoals jQuery: jquery form validator.
Erick schreef op 13.10.2009 15:14:
Mr Ark - jouw oplossing ziet er solide uit, ga ik proberen! Die regex-ellende kom ik wel uit...
Maar dat had je zelf toch ook kunnen bedenken? :-X Je zei het al in gewoon Nederlands. Dan is de stap naar php toch niet zo moeilijk?
how about regex?
dat is ook wel handig
dat is ook wel handig
Je hebt verschillende lengtes voor de telefoon nummers... Ook voor verschillende landen.
Een 06-nummer is bijvoorbeeld 10 cijfers lang
Een vaste telefoon is bijvoorbeeld 7 cijfers lang (met 077 ervoor is het weer 10)
Een 06-nummer is bijvoorbeeld 10 cijfers lang
Een vaste telefoon is bijvoorbeeld 7 cijfers lang (met 077 ervoor is het weer 10)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
function phone($number, $lengths = NULL)
{
if ( ! is_array($lengths))
{
$lengths = array(7, 10, 11);
}
// Alle niet-cijfer characters weg doen
$number = preg_replace('/\D+/', '', $number);
return in_array(strlen($number), $lengths);
}
// Voorbeeld:
echo (phone('06 123 45678')) ? 'Valid' : 'Not valid';
echo (phone('35 123 456')) ? 'Valid' : 'Not valid';
// Geeft:
// Valid
// Valid[/code]
function phone($number, $lengths = NULL)
{
if ( ! is_array($lengths))
{
$lengths = array(7, 10, 11);
}
// Alle niet-cijfer characters weg doen
$number = preg_replace('/\D+/', '', $number);
return in_array(strlen($number), $lengths);
}
// Voorbeeld:
echo (phone('06 123 45678')) ? 'Valid' : 'Not valid';
echo (phone('35 123 456')) ? 'Valid' : 'Not valid';
// Geeft:
// Valid
// Valid[/code]
Om een Nederlands telefoonnummer te valideren dmv een regex; zie http://bit.ly/3GRVxn ;)
GaMer13 schreef op 13.10.2009 17:44:
Een 06-nummer is bijvoorbeeld 10 cijfers lang
Een vaste telefoon is bijvoorbeeld 7 cijfers lang (met 077 ervoor is het weer 10)
Een vaste telefoon is bijvoorbeeld 7 cijfers lang (met 077 ervoor is het weer 10)
Niet voor iedereen geld 7 cijfers er zijn ook gebieden die hebben 6 cijfers vast. Daarvoor krijg je dan 4 cijfers (bv. 0416)
Of 0297...etc. etc.
Kun je van zo'n 'telefoonnummer' dus niet gewoon het beste een simpel invoerveld hebben met een (in dit geval) ruimte voor 10 cijfers...?
'Mensen in Nederland' begrijpen dit toch wel? En de rest v/d wereld zal net zo zitten rommelen als 'wij nederlanders' met bv. een braziliaans telefoonnummer op een braziliaanse website.
Als een telefoonnummer niet zou passen (op een nederlandstalige website!)...haal ik persoonlijk het streepje weg...of zo...etc. Dit soort geneuzel is eigelijk toch niet meer dan logisch en bij 'elk' formulier maar weer de vraag.
Ook denk ik dat het wellicht slim is om een 'lijst met kengetallen uit Nederland' te presenteren...net zoals je vaak een specifiek land uit een pulldown kunt kiezen.
Hier kiest iemand zijn of haar kengetal waarnaast vervolgens de rest van het nummer kan worden ingevuld.
Kengetal en 'streepje' richt je dan lekker naar behoeven in.
Is dit een idee? Of bestaat er geen lijst van 'alle kengetallen van Nederland'?
Kun je van zo'n 'telefoonnummer' dus niet gewoon het beste een simpel invoerveld hebben met een (in dit geval) ruimte voor 10 cijfers...?
'Mensen in Nederland' begrijpen dit toch wel? En de rest v/d wereld zal net zo zitten rommelen als 'wij nederlanders' met bv. een braziliaans telefoonnummer op een braziliaanse website.
Als een telefoonnummer niet zou passen (op een nederlandstalige website!)...haal ik persoonlijk het streepje weg...of zo...etc. Dit soort geneuzel is eigelijk toch niet meer dan logisch en bij 'elk' formulier maar weer de vraag.
Ook denk ik dat het wellicht slim is om een 'lijst met kengetallen uit Nederland' te presenteren...net zoals je vaak een specifiek land uit een pulldown kunt kiezen.
Hier kiest iemand zijn of haar kengetal waarnaast vervolgens de rest van het nummer kan worden ingevuld.
Kengetal en 'streepje' richt je dan lekker naar behoeven in.
Is dit een idee? Of bestaat er geen lijst van 'alle kengetallen van Nederland'?
Een nederlands telefoonnummer begint met een 0 (behalve 112, maar die mag je toch niet invullen :P) met daarna de "kengetallen".. Na de kengetallen mag een streepje komen, of niet en volgt de rest van het telefoonnummer.
Vooralsnog zijn de Nederlandse telefoonnummers bestaand uit 10 cijfers, dus kan je controleren op:
- Begin 0 (zet gewoon bij de naam: tel.nr. Inclusief netnummer)
- 9 andere cijfers, waarbij het 2e getal (dus het getal na de 0 niet ook nog een 0 mag zijn, de rest in theorie wel)
- Staat er een streepje in kan je deze er zelf wel uit filteren en er een 10 cijferig nummer van maken
Op zich is dat het gemakkelijkst om te doen en zo kan in principe iedereen zijn/ haar telefoonnummer opgeven.
Vooralsnog zijn de Nederlandse telefoonnummers bestaand uit 10 cijfers, dus kan je controleren op:
- Begin 0 (zet gewoon bij de naam: tel.nr. Inclusief netnummer)
- 9 andere cijfers, waarbij het 2e getal (dus het getal na de 0 niet ook nog een 0 mag zijn, de rest in theorie wel)
- Staat er een streepje in kan je deze er zelf wel uit filteren en er een 10 cijferig nummer van maken
Op zich is dat het gemakkelijkst om te doen en zo kan in principe iedereen zijn/ haar telefoonnummer opgeven.
Ik heb ooit eens een functie geschreven die verschillende formaten controleerde
(met +31..., 0031, ...).
Het staat hier wel nog ergens online; ik vind het echter niet meer.
EDIT
http://www.phphulp.nl/forum/showtopic.php?cat=1&id=55625&replies=
Zie eens of je iets hebt aan mijn laatste post daar
(met +31..., 0031, ...).
Het staat hier wel nog ergens online; ik vind het echter niet meer.
EDIT
http://www.phphulp.nl/forum/showtopic.php?cat=1&id=55625&replies=
Zie eens of je iets hebt aan mijn laatste post daar
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay



