Avatar billede listende-elg Nybegynder
08. september 2003 - 13:55 Der er 10 kommentarer og
1 løsning

IsNumeric funktion i JavaScript

Jeg skal bruge en funktion der svarer til IsNumeric skrevet i JavaScript. Den skal returnere false hvis input er != numeric og ellers true.
Jeg så der var et eksempel på noget lignende i C#, men nu overlader jeg det til jer herinde... Funktionen skal kunne pastes direkte ind i.

Eksemplet jeg fandt i C# var dette:

public bool IsNumeric(object num){
    return (num as double) != null;
    }

Det er muligt at der bare skal ændres et tegn eller 2.
Avatar billede socle Nybegynder
08. september 2003 - 14:09 #1
if(isNaN(testvalue))
alert("ikke numeric")
else
alert("numeric")
Avatar billede socle Nybegynder
08. september 2003 - 14:11 #2
if(isNaN(testvalue))
return false
else
return true
Avatar billede socle Nybegynder
08. september 2003 - 14:12 #3
tak for point
Avatar billede grunken Nybegynder
08. september 2003 - 14:26 #4
og det letteste er vel at gøre sådan :)

return (!isNaN(vaerdi));

ovenstående retunerer true hvis det er et tal, og false hvis det ikke er ;)
Avatar billede =maddog= Nybegynder
08. september 2003 - 14:29 #5
(typeof var)=="number";
ex.
alert((typeof 10)=="number");
alert((typeof (new Array(0)))=="number");
Avatar billede =maddog= Nybegynder
08. september 2003 - 14:37 #6
De forige er forkerte ud fra dit C# eksempel. Prøv evt. nedenstående.

var tal = 10;
var tekst = "10";

function forkert(value) {
    return(!isNaN(value));
}
function rigtig(value) {
    return((typeof value)=="number");
}

alert(forkert(tal));
alert(forkert(tekst));
alert(rigtig(tal));
alert(rigtig(tekst));
Avatar billede socle Nybegynder
08. september 2003 - 14:42 #7
--> grunken: klart bedre

isNaN returnerer false hvis tallet er en streng eller et tal
typeof returnerer "number" hvis tallet er et tal, men "string" hvis den er en streng

en streng kan jo godt være numeric, så derfor valgte jeg isNaN

.. så vidt jeg ved ..
Avatar billede =maddog= Nybegynder
08. september 2003 - 16:14 #8
en streng kan ikke være numeric. derfor min irettesættelse. nu er det her ikke en debat om semantik, men snarere et spørgsmål om at du får noget brugtbart.
Avatar billede socle Nybegynder
08. september 2003 - 16:37 #9
=maddog=: ok
Avatar billede =maddog= Nybegynder
08. september 2003 - 18:09 #10
:D
Hvis du er seriøst interesseret kan jeg godt uddybe. Bare ignorér mig ellers.
Når javascript forventer et tal, men får en streng vil den forsøge at kalde parseInt(). Denne funktion vil returnere NaN hvis der ikke kan dannes et tal ud fra strengen.
Funktionen isNaN() forventer et tal. Derfor vil den forsøge at omdanne strengen til et tal, og hvis dette ikke kan lykkes giver den true (da resultatet af parseInt() er NaN).
Dette betyder ingenlunde at en streng der indeholder et tal opfører sig som et tal. F.eks. vil "10"+3 give "103". "10"-3 giver ingen mening for en streng og parseInt bliver kaldt så derfor giver dette 7.
Til afprøvelse:
alert(parseInt("enogtyve")); // -> NaN (Not a Number)
alert("10"+3); // -> "103"
alert("10"-3); // -> 7
Avatar billede socle Nybegynder
08. september 2003 - 18:17 #11
vi er enige, et spm om formulering
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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