Okay jongens, ik ben de wanhoop nabij. Ik heb één heel klein dingetje nodig: een veld controle (javascriptje?) in een formulier. Een controle op een telefoonnummer. Heel simpel: je mag alleen cijfers invullen, geen letters, geen vreemde tekens en je MOET er 10 hebben. En dat is alles. Maar 1) het lukt me niet 2) als het werkt, werkt het niet in m'n bestaande formulier 3) elk javascript dat ik vind werkt niet...
Wat heb je geprobeerd dan? Post de code die wel werkt dan, en de source van je form.
"To make a bad day worse, spend it wishing for the impossible", Calvin (Calvin & Hobbes)
Verwijderd
code:
1
2
3
4
5
6
| phonenumber = /[0-9]{10}/;
function check() {
temp = document.forms['formnaam'].elements['veldnaam'].value;
return phonenumber.test(temp);
} |
Deze functie returnt true als het 10 cijfers zijn, en false in alle andere gevallen.
Je kunt dus bijvoorbeeld gebruiken:
if (!check()) alert('fout');
Meer over regular expressions met javascript
Het JavaScript dat werkt, standalone... vul je te weinig in, wordt het veld rood. Vul je wel genoeg karakters in, maar bijvoorbeeld een streepje, krijg je een melding...
<hr color="red" size="1" />
3 paginas HTML + Javascript code is wat veel om te plaatsen. Post liever een linkje, dan blijft het hier ook nog leesbaar.
<hr color="red" size="1" />
3 paginas HTML + Javascript code is wat veel om te plaatsen. Post liever een linkje, dan blijft het hier ook nog leesbaar.
Ff uit mn hoofd voor een nederlands telefoon nummer, met streepje-ondersteuning 
/^\d{2,4}-?\d{6,8}$/
Maar daar kunnen gekke uitkomsten uitkomen, 4-8 bijvoorbeeld.. Kun je er beter 3 reg exp's van maken, want ik heb geen idee hoe ik dat zou kunnen combineren..
/^\d{2}-?\d{8}$/
/^\d{3}-?\d{7}$/
/^\d{4}-?\d{6}$/
Of zijn er nog mensen die het wel in 1 kunnen? (Moet sowieso nog ondersteuning voor spatie in naast het streepje trouwens)..
Wacht.. ik ga ff over regexp's een topic openen als dat mag om een goeie verzameling te genereren.
/^\d{2,4}-?\d{6,8}$/
Maar daar kunnen gekke uitkomsten uitkomen, 4-8 bijvoorbeeld.. Kun je er beter 3 reg exp's van maken, want ik heb geen idee hoe ik dat zou kunnen combineren..
/^\d{2}-?\d{8}$/
/^\d{3}-?\d{7}$/
/^\d{4}-?\d{6}$/
Of zijn er nog mensen die het wel in 1 kunnen? (Moet sowieso nog ondersteuning voor spatie in naast het streepje trouwens)..
Wacht.. ik ga ff over regexp's een topic openen als dat mag om een goeie verzameling te genereren.
code:
1
| <input type="text" maxlength="10"> |
toevoegen zodat er niet meer dat 10 cijfers ingevult kunnen worden.. dan kunnen mensen toch alleen maar nr's invoeren als ze hun gehele telefoonnr invoeren? of zijn er ook telefoonnr's van 9 getallen?
Je kunt het ook heel simpel doen:
if ((Waarde >= 0) && (Waarde <= 9999999999) && (Waarde.length == 10))
{
alert("Oke");
}
Keep it simple
if ((Waarde >= 0) && (Waarde <= 9999999999) && (Waarde.length == 10))
{
alert("Oke");
}
Keep it simple
Jawel, maar 90% van de gebruikers zal een streepje gebruiken.
Een goeie validator accepteert gewoon alle geldige input.
Een goeie validator accepteert gewoon alle geldige input.
Als ik een veld heb waar ik maar 10 waardes in kan voeren. Kan ik niet eens een streepje invoeren..
[0522250000]
dat zijn 10 cijfers..
als ik daar een streepje tussen zou willen zetten, kan dat alleen maar door een cijfer van mijn telefoon nr weg te laten (anders heb ik immers 11 tekens)
dus als je een veld met een maxlength van 10 gewoon checkt of het allemaal getallen zijn dan lijkt het mij voldoende.
Of noteer gewoon achter het veld dat de gebruiker geen - moet gebruiken..
[0522250000]
dat zijn 10 cijfers..
als ik daar een streepje tussen zou willen zetten, kan dat alleen maar door een cijfer van mijn telefoon nr weg te laten (anders heb ik immers 11 tekens)
dus als je een veld met een maxlength van 10 gewoon checkt of het allemaal getallen zijn dan lijkt het mij voldoende.
Of noteer gewoon achter het veld dat de gebruiker geen - moet gebruiken..
code:
1
| if (document.forms['formnaam'].formveld.value.indexOf('-') > -1) alert('Bitte geen \'-\' gebruiken..); |
Dat is de gebruiker opzadelen met een probleem waarvan jezelf te lui bent om het op te lossen..
De gebruiker moet voor het invullen van een telefoonnummer (!) dus eerst je handleiding gaan lezen? En zeer waarschijnlijk moet ie zich vervolgens nog corrigeren als die erachterkomt dat het niet kan..
Zo werkt het alleen bij /14, niet in /13
De gebruiker moet voor het invullen van een telefoonnummer (!) dus eerst je handleiding gaan lezen? En zeer waarschijnlijk moet ie zich vervolgens nog corrigeren als die erachterkomt dat het niet kan..
Zo werkt het alleen bij /14, niet in /13
Dan los je het anders op
Maar ik snap jou reactie wel, jij wilt het gewoon met reg expressions doen
code:
1
2
3
4
5
| if (document.forms['form1'].testveld.value.indexOf('-') > -1){
substringen tot '-'
substringen van '-' tot eind
aan elkaar plakken ... en ready...
} |
Maar ik snap jou reactie wel, jij wilt het gewoon met reg expressions doen
Verwijderd
Okay, nog even een nieuwe regex gebouwd, en ingebouwd in de form validator die uit een eerder projectje is gerold (moet hem nog eens afmaken)
Ik was trouwens in die eerste ^ en $ vergeten, errug slordig
Regex in actie
code:
1
| phone = /^06-?[0-9]{8}$|^0[0-9]{2}-?[0-9]{7}$|^0[0-9]{3}-?[0-9]{6}$/; |
Ik was trouwens in die eerste ^ en $ vergeten, errug slordig
Regex in actie
Pagina: 1