Из документов проверки формы CI :
Примечание: Вы также можете использовать любые встроенные функции PHP, которые разрешают один параметр.
is_numeric()
может работать для вас, но он принимает некоторые форматы, которые очень отличаются от денег.
is_float()
будет работать, за исключением того, что он потерпит неудачу на строках и целых числах.
Обе эти функции также слишком мягки в проверке числового целого или десятичного числа, которое вы обычно принимаете в качестве денежного значения.Встроенная функция CI decimal()
требует десятичной точки и допускает символы +
и -
.
Да, я знаю - не полезно, но, надеюсь, заставит задуматься.Синтаксис, который вы хотели бы использовать, просто не будет работать.Я бы предложил создать ваше собственное правило проверки формы для проверки денег путем расширения библиотеки Form_validation.
Создать файл /application/libraries/MY_Form_validation.php
Примерно так:
class MY_Form_validation extends CI_Form_validation {
function is_money($input = '')
{
// Validate input here and return TRUE or FALSE
}
}
Сначала я написал неверный пример, затем попытался написать что-то, что сработало бы, и понял, что это ваше дело.Вы можете или не можете разрешить символы, такие как $
, €
, -
, +
, или десятичные дроби за пределами двух знаков, или десятичную с одним местом, или запятые в цифре для разделения тысяч ..Используйте любой метод проверки, который вам подходит.
Вот хороший пример проверки денежного формата: Как проверить, является ли введенное значение валютой