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?

È stato utile?

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

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top