C Calevan Medlem sedan maj 2003 1 173 inlägg Frågan 4 okt. 2005 13:29 #1 Hej!
Tänkte ha en kod som kollar att ett fält innehåller exakt 8 siffror och tänkte mig då något sånt här:
<script type="text/javascript">
if(/\D{8}/.test(document.bekrafta.kundnummer.value)) {
alert("Kundnummret måste innehålla exakt 8 siffror");
return false;
}
</script>
men det gick inte... hur är det man ska göra?
tack!
@nders Medlem sedan juni 2000 32 967 inlägg document.bekrafta.kundnummer.value.length!=8 {
C Calevan Medlem sedan maj 2003 1 173 inlägg oj... var det så lätt. tänk vad man lär sig här på wF! :)
tack!
@nders Medlem sedan juni 2000 32 967 inlägg Glöm inte att det ska vara parenteser runt villkoret, de måste ha försvunnit när jag postade mitt inlägg. ;)
Så här alltså:
if (document.bekrafta.kundnummer.value.length!=8) {
J Josef Medlem sedan mars 2002 3 561 inlägg Fast det där fångar ju bara 8 tecken, inte specifikt siffror.
@nders Medlem sedan juni 2000 32 967 inlägg
Josef skrev:
Fast det där fångar ju bara 8 tecken, inte specifikt siffror.
Det har du helt rätt i! Jag tror jag läste "tecken" istället för "siffror".
Sorry! Avmarkera genast mitt svar som slutgiltigt! ;)
Mvh
Virtual Medlem sedan sep. 2005 156 inlägg otestat..osäker på syntaxen osv, men det borde gå att använda isNaN
if (!isNaN(document.bekrafta.kundnummer.value.length!=8)) {
P Peter S Medlem sedan dec. 2002 5 483 inlägg Snarare
if (isNaN(document.bekrafta.kundnummer.value) || document.bekrafta.kundnummer.value.length != 8)
Eller
if (!/^\d{8}$/.test(document.bekrafta.kundnummer.value))
Virtual: Det där har många fel. För det första så kollar du om True/False är numeriskt. Sen så släpper isNaN igenom decimaler, minustecken och även bokstäver i vissa fall.
Calevans regulära uttryck är en bra början, behöver bara modifieras lite.
<script type="text/javascript">
if (!/^\d{8}$/.test(document.bekrafta.kundnummer.value))
{
alert("Kundnumret måste innehålla exakt 8 siffror");
return false;
}
</script>
Peter S: :p
(alternativ två är då det vettiga sättet att göra det på)