Nel mio caso una semplice espressione regolare ha fatto il trucco.
Avevo bisogno di convalidare l'input di un utente se l'input è un valore monetario valido. Ho semplicemente usato-
/^[0-9]+(\.)?[0-9]*$/.test(number)
tutto tra //
è l'espressione regolare.
/^
significa che la corrispondenza inizia dall'inizio della parola e $/
significa che la corrispondenza termina con la parola. Se pensi che la parola non possa iniziare con la lettera 0
allora l'espressione sarebbe come [1-9][0-9]*
[0-9]+
significa che la parola deve iniziare con almeno un numero.
Nota: *
significa zero o più, +
significa uno o più e ?
significa uno o nessuno.
Fino a qui l'espressione è /^[1-9][0-9]*$/
e questo convaliderà solo i numeri interi.
Per verificare per un punto (.) Nel numero, è necessario utilizzare \.
con l'espressione. .
è un carattere speciale che corrisponde a tutto, \.
corrisponderà solo al periodo.
Infine un'altra classe di caratteri [0-9]*
corrisponde a zero o più cifre.
Test Cases
/^[0-9]+(\.)?[0-9]$/.test("21.38a") // ==> false
/^[0-9]+(\.)?[0-9]$/.test("21.38") // ==> true
/^[0-9]+(\.)?[0-9]$/.test("y2781.68") // ==> false
/^[0-9]+(\.)?[0-9]$/.test("2781r.68") // ==> false
Provare a utilizzare 'parseFloat'. –
Come viene passato il 'valore'? Attraverso una forma o qualcosa? – 0x499602D2
http://stackoverflow.com/questions/3885817/how-to-check-if-a-number-is-float-or-integer –