Подтвердите число сгруппированными тысячами с десятичной дробью до сотого - PullRequest
1 голос
/ 25 октября 2010

Ищем простой способ (функция / регулярное выражение) для проверки числа с сгруппированными тысячами.

Примеры номеров:

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

Теперь я видел number_format () , но это форматирует число, не проверяющее.

Я хотел использовать RegEx, но потерял, как это сделать.

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

, но это не работает.

Я также посмотрел на money_format () , но опять-таки это формат, а не проверка.

Ответы [ 3 ]

1 голос
/ 25 октября 2010
^(?:\d{1,3}(?:,\d{3})*)?\.\d{2}$
1 голос
/ 25 октября 2010

Просто у меня в голове:

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

Это будет соответствовать всем упомянутым вами числам (фактически: каждая строка начинается с комбинации цифр и запятых и заканчивается на "."и цифрам).

Опять же, это не проверено, но должно работать.

0 голосов
/ 25 октября 2010

Если у вас PHP5.3 +, вы можете попробовать использовать международный форматировщик чисел:

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

...