battrack
@battrack

Как составить регулярное выражение для проверки правильного формата денежной суммы?

Необходимо на php проверить валидность ввода денежной суммы. Сумма должна обязательно содержать точку, после которой должно быть два знака. До точки не более 10 знаков.
Т.е. формат такой XXXXXXXXXX.YY
YY - два знака после точки
XXXXXXXXXX - от 1 до 10 знаков до точки. Могу принимать значения от 0 до 9.
Т.е. должен пропускать:
1.20
233.00
30000000.00
и т.д.
Не должен пропускать:
-4.00
444
8.883
и т.д.

Помогите пожалуйста составить регулярку для php!

Может быть кто-нибудь знает какую-нибудь хорошую статейку с подборкой регулярных выражений на все случаи жизни?
  • Вопрос задан
  • 6354 просмотра
Пригласить эксперта
Ответы на вопрос 4
FanatPHP
@FanatPHP
Чебуратор тега РНР
Здесь, кстати, хорошо видны два подхода, которые четко делят людей на пользователей и программистов:
Пользователь хочет "подборку готовых кодов на все случаи жизни" - желание заведомо невыполнимое.
Программиста же никогда не смущает отсутствие готового решения - на то он и программист. Которому не нужна таблица, в которой можно посмотреть, сколько будет 5х5. Потому что он может это вычислить!
Ответ написан
@AlexLIn
Для точки можете проверить както так
function isMoney($money)
{
return preg_match("/^-?[0-9]+(?:\.[0-9]{1,2})?$/", $money);
}

//как пользовать
echo (isMoney("948.42") ? "TRUE" : "FALSE");
echo (isMoney(78.7) ? "TRUE" : "FALSE");
Ответ написан
Комментировать
[0-9]{1,8}\.[0-9]{2}
Ответ написан
Комментировать
@Nc_Soft
444, 5.7 вполне нормальные суммы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы