Domanda

Alla ricerca di un modo semplice (Funzione/RegEx) per convalidare un numero con migliaia raggruppate.

Numeri di esempio:

.00 - 999.00 should validate
1,000.00 should validate
100,000.00 etc... should validate
100,000,000,000,000.00 should validate

Ora ho visto il numero_formato(), ma questo formatta il numero non convalida.

Volevo usare un RegEx ma non sapevo come farlo.

preg_match(/^[\d]\,?\.[\d]{2}$/, $number);

ma questo non funziona.

Ho anche guardato il formato_moneta() ma ancora una volta questo è formato e non convalida.

È stato utile?

Soluzione

^(?:\d{1,3}(?:,\d{3})*)?\.\d{2}$

Altri suggerimenti

Proprio in cima alla mia testa:

preg_match('%^[\d,]*\.\d{2}$%', $number);

Questo corrisponderà a tutti i numeri che hai menzionato (in effetti:ogni stringa che inizia con una combinazione di cifre e virgole e termina con "." e a cifre).

Ancora una volta, questo non è stato testato ma dovrebbe funzionare.

Se hai un PHP5.3+ puoi provare il formattatore di numeri Intl:

http://www.php.net/manual/en/numberformatter.parse.php

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