Więcej
Sprawdzanie poprawności liczb dziesiętnych w JavaScript - IsNumeric()
Jaki jest najczystszy i najbardziej efektywny sposób walidacji liczb dziesiętnych w JavaScript?
Punkty bonusowe za:
- Przejrzystość. Rozwiązanie powinno być czyste i proste.
- Cross-platform.
Przypadki testowe:
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
Ten sposób wydaje się działać dobrze:
I aby to przetestować:
Pożyczyłem ten regex z http://www.codetoad.com/javascript/isnumeric.asp. Wyjaśnienie:
Chciałbym dodać, co następuje:
Dodatnie liczby heksadecymalne zaczynają się od
0x
, a ujemne liczby heksadecymalne zaczynają się od-0x
. Dodatnie liczby oct zaczynają się od0
, a ujemne liczby oct zaczynają się od-0
. Ten bierze pod uwagę większość z tego, co już zostało wspomniane, ale zawiera liczby heksadecymalne i ósemkowe, ujemne liczby naukowe, nieskończoność i usunął dziesiętne liczby naukowe (4e3.2
nie jest ważne).Kilka testów do dodania:
Wymyśliłem to:
Rozwiązanie obejmuje: