Приложение, над которым я работаю, принимает десятичные числа от пользователей не на английском языке sh, в основном Dani sh.
Код для проверки чисел выглядит следующим образом:
$fmt = new NumberFormatter($locale, NumberFormatter::DECIMAL);
$amount = $fmt->parse($input);
if ($amount === false) {
echo "There has been an error with the number {$input}";
}
Это отлично работает, поскольку выдает ошибки для строк и принимает десятичные числа. Моя проблема с NumberFormatter заключается в том, что, например, "12,34 ,,,, 5,34" принимается и форматируется как 12,34
. Теперь "12,34 ,,,, 5,34" не является десятичным. номер, его следует отклонить. Я пробовал комбинировать это с is_numeric()
, но is_numeric()
отклоняет как "" 12,34 ,,,, 5,34 ", так и 12,34.
Мой вопрос: есть ли способ сделать NumberFormatter отклонить "12,34 ,,,, 5,34", так как это не число c ??