Avatar billede thingholm.dk Nybegynder
08. juli 2003 - 11:56 Der er 15 kommentarer og
1 løsning

Validering af tal

Hej

Hvordan laver man en funktion som validerer at et givent input er et tal, som f.eks 10, 10.5, 10.25, 10.75 - dvs. uden bogstaver, komma mv.

VH

Anders
Avatar billede thingholm.dk Nybegynder
08. juli 2003 - 11:58 #1
Det skulle ikke have væres feks. Tallet må kun være helt, .25, .50 eller .75.
Avatar billede thingholm.dk Nybegynder
08. juli 2003 - 11:58 #2
væres=været
Avatar billede barklund Nybegynder
08. juli 2003 - 12:44 #3
isANumber = isNan(Number(input));
Avatar billede barklund Nybegynder
08. juli 2003 - 12:45 #4
selvfølgelig

isANumber = !isNaN(Number(input));
Avatar billede thingholm.dk Nybegynder
08. juli 2003 - 12:49 #5
Cool, men det tjekker jo ikke på om tallet f.eks. er 10.45, hvilket det ikke på være...

Kun hele tal, .25, .50 og .75
Avatar billede barklund Nybegynder
08. juli 2003 - 12:53 #6
isAnInteger = !isNaN(Number(input)) && Math.round(Number(input)) == Number(input);
Avatar billede barklund Nybegynder
08. juli 2003 - 12:54 #7
Nårh... med "hele" tal mener du hele 25-ører?

Så er det:

isAnInteger = !isNaN(Number(input)) && Math.round(4*Number(input)) == 4*Number(input);
Avatar billede barklund Nybegynder
08. juli 2003 - 12:55 #8
Hvorfor ikke 0.5 - kun 0.50?
Avatar billede thingholm.dk Nybegynder
08. juli 2003 - 12:56 #9
Det skal både være 0.5 og 0.50
Avatar billede barklund Nybegynder
08. juli 2003 - 12:58 #10
Så bliver det en funktion:

Math.isCurrency = function(num) {
    if (isNaN(Number(num))) return false;
    var n = num.split(".");
    return typeof n[1] == "undefined" || n[1] == "25" || n[1] == "50" || n[1] == "75";
}
trace(Math.isCurrency("4"));
trace(Math.isCurrency("4.25"));
trace(Math.isCurrency("4.45"));
trace(Math.isCurrency("4.5"));
trace(Math.isCurrency("4.50"));
Avatar billede barklund Nybegynder
08. juli 2003 - 12:59 #11
Nu er det kun:

heltal
heltal.25
heltal.50
heltal.75

Der godkendes
Avatar billede thingholm.dk Nybegynder
08. juli 2003 - 13:02 #12
Den her ser da også ud til at virke

validateNumber = function (input) {
    isAnInteger = !isNaN(Number(input)) && Math.round(4*Number(input)) == 4*Number(input);
    return isAnInteger;
};


on(release){
    trace(validateNumber(input_txt.text))
}
Avatar billede barklund Nybegynder
08. juli 2003 - 13:09 #13
Ja, men så kan man skrive fx:

heltal.2500000
heltal.5

Den anden gav KUN ovenstående....
Avatar billede barklund Nybegynder
08. juli 2003 - 13:09 #14
og heltal.0000
Avatar billede thingholm.dk Nybegynder
08. juli 2003 - 13:10 #15
nåååh ja ;-)

Smider du et svar?
Avatar billede barklund Nybegynder
08. juli 2003 - 13:42 #16
Yup :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester