formulier validatie telefoonnummer

Status
Niet open voor verdere reacties.

pienvink

Gebruiker
Lid geworden
29 aug 2008
Berichten
6
Hallo,

Hoe kan ik ervoor zorgen dat het formulier controleert of het telefoonnummer uit 10 cijfers bestaat en met een nul begint?

bvd Pien


}
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is vereist.\n'; }
} if (errors) alert('De volgende fouten hebben zich voorgedaan:\n'+errors);
document.MM_returnValue = (errors == '');
} }
 
JavaScript van Dreamweaver :(.

Anyway: een telefoonnummer bestaat niet uit 10 cijfers en begint niet met een nul. Ja, dat zou wel moeten ja, maar dat is vaak niet het geval.

2 dingen:

- Javascript-controle mag nooit de enige controle in je applicatie zijn;
- Telefoonnummers moet je eerst _filteren_ daarna _valideren.


Even kort door de bocht kan een gebruiker redelijkerwijs de volgende formaten invoeren:

- 0612345678 (dat is wat je zou willen)
- 0031612345678
- +31612345678
- (0031)612345678
- 06 12345678
- 06-12345678

Dat zijn 6 mogelijkheden die ook nog gecombineerd kunnen worden. Hou rekening met meer dan 15 formaten (!!) die allemaal valid zouden moeten zijn. De procedure die je volgt:

- Telefoonnummer ontdoen van rare tekenst met string.replace (+, - , ' ' , ());
- Controleren of het begint met '31' of '0031';
- 31 weghalen, 0 terugplaatsen.
- Kijken of het nú wel voldoet aan de eisen.


Gebruik iets als:

var nummers = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
Hier kun je doorheen loepen met de karakters uit je string.

Verder gebruik je string.length voor de lengte en charAt voor de eerste 0.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan