如何在 PHP 中过滤十进制输入并对其进行清理



我想过滤用户输入的十进制值,我想允许逗号和点。

我使用以下代码段来完成它:

$user_input = round(filter_input(INPUT_POST, 'test', FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION|FILTER_FLAG_ALLOW_THOUSAND),2);
使用第一个过滤器,如果我输入带点的十进

制值,一切正常,但是如果我输入带逗号的十进制值,函数也会删除逗号和小数部分。有人可以帮助我吗?谢谢

你可以为此使用正则表达式,比如这个:

preg_match_all('/^(d+(?:[.,]d{1,})?)$/', $input, $output);

在$output变量中,您将获得结果。如果输出不正确,你只会得到一个空数组。

要查看preg_match_all方法的工作原理,请转到此处:http://php.net/manual/es/function.preg-match-all.php

要了解有关正则表达式的更多信息,请访问此处:http://php.net/manual/es/reference.pcre.pattern.syntax.php

相关内容

  • 没有找到相关文章

最新更新