[英]Filter number using preg_replace in php
在php eCommerce实现中,我的购物车总价为$ 20.00或$ 0.00(以防空车)。 为了从这个字符串中过滤数字我正在使用以下
// $ total可能是“ $ 20.00”或“ $ 0.00”或“ $ 10,000.00”等
$total = "$20.00";
return floatval( preg_replace( '/[^0-9,.]/', '', $total) );
当ther的值大于0但在空购物车检测中失败时,其工作。 始终返回一个奇怪的值360!
预期的输出如下,
Input Output
$20.00 20
$0.00 0
$10,000.00 10000
由于这是货币,因此建议您使用适当的工具NumberFormatter :
例:
$fmt = new NumberFormatter("en_US",NumberFormatter::CURRENCY);
$fmt->parse("$10,123,234.23"); //Returns 10123234.23
$fmt->parse("$0.00"); //Returns 0
如果您愿意,这还具有允许将来进行国际化的优势。 但是,这确实需要安装国际化功能扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.