Decimale getallen valideren in JavaScript - IsNumeric()
Wat is de schoonste, meest effectieve manier om decimale getallen te valideren in JavaScript?
Bonuspunten voor:
-
Duidelijkheid. De oplossing moet duidelijk en eenvoudig zijn.
-
Cross-platform.
-
Test gevallen:
01. IsNumeric('-1') => true
02. IsNumeric('-1.5') => true
03. IsNumeric('0') => true
04. IsNumeric('0.42') => true
05. IsNumeric('.42') => true
06. IsNumeric('99,999') => false
07. IsNumeric('0x89f') => false
08. IsNumeric('#abcdef') => false
09. IsNumeric('1.2.3') => false
10. IsNumeric('') => false
11. IsNumeric('blah') => false
2316
3
Deze manier lijkt goed te werken:
En om het te testen:
Ik heb die regex geleend van http://www.codetoad.com/javascript/isnumeric.asp. Uitleg:
Ik zou graag het volgende willen toevoegen:
Positieve hex getallen beginnen met
0x
en negatieve hex getallen beginnen met-0x
. Positieve oct getallen beginnen met0
en negatieve oct getallen beginnen met-0
. Deze neemt het meeste van wat al genoemd is in beschouwing, maar bevat hex en octale getallen, negatief wetenschappelijk, Infinity en heeft decimaal wetenschappelijk verwijderd (4e3.2
is niet geldig).Een paar testen om toe te voegen:
Ik heb dit gevonden:
De oplossing dekt: