Come posso verificare la corretta posizione di virgole in un numero inserito da un utente?
-
19-09-2019 - |
Domanda
Sto cercando un buon modo per verificare un numero che un utente ha immesso per la corretta posizione di virgole opzionale.
Ad esempio
1,000,000.00 = correct
1000000 = correct
1,00,000.00 = incorrect
,100,000 = incorrect
Quindi sembra che ho bisogno di verificare che ci sia almeno un numero a sinistra e 3 numeri a destra della virgola, oppure c'è un modo RegEx per fare questo?
Soluzione
Che cosa hai intenzione di utilizzare questo per? O in altre parole, perché la cura? Perché non basta a nudo tutte le virgole e convertirlo in un tipo numerico?
Altri suggerimenti
/^(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d+)?$/
Dai un'occhiata a questo sito: http://blog.stevenlevithan.com/archives/commafy- numeri
Ecco il frammento di codice:
String.prototype.commafy = function () {
return this.replace(/(^|[^\w.])(\d{4,})/g, function($0, $1, $2) {
return $1 + $2.replace(/\d(?=(?:\d\d\d)+(?!\d))/g, "$&,");
});
}
Number.prototype.commafy = function () {
return String(this).commafy();
}
Che cosa si può fare è sostituire tutte le virgole e quindi utilizzare questo codice per aggiungere nelle virgole te stesso.
La speranza che aiuta.
Ecco uno schema che risponde alla tua domanda. Ci sono anche molti altri modelli numerici legati lì, compresi quelli che sono mantenibile - qualcosa che nessuno sembra mai preoccuparsi
.