带有1个十进制数的php输入

带有1个十进制数的php输入,php,regex,numbers,preg-replace,decimal,Php,Regex,Numbers,Preg Replace,Decimal,全部,, 我正在做一个购物车,只接受输入数字的小数点后1位。 以下是我从库中获得的一段代码(经过一些修改): 这将接受任何数字。但我想把它设为只有1个小数点。如何修改代码 谢谢您可以使用类似^(\d+。{0,1}\d*)的正则表达式$ 但是PHP有一个概念,过滤器,它为你做了很多验证,如果我很理解这个问题,你可以使用number\u格式 $items['qty'] = number_format(trim(preg_replace('/([^0-9\.])/i', '', $items['qty

全部,, 我正在做一个购物车,只接受输入数字的小数点后1位。 以下是我从库中获得的一段代码(经过一些修改):

这将接受任何数字。但我想把它设为只有1个小数点。如何修改代码

谢谢

您可以使用类似^(\d+。{0,1}\d*)的正则表达式$


但是PHP有一个概念,过滤器,它为你做了很多验证,

如果我很理解这个问题,你可以使用number\u格式

$items['qty'] = number_format(trim(preg_replace('/([^0-9\.])/i', '', $items['qty'])),1,".","");

希望有帮助。

您可以删除第一个小数位后的小数位:

$items['qty'] = trim(preg_replace('/[^0-9\.]+|(?<=\.[0-9])[0-9+]+/', '', $items['qty']));
$items['qty']=trim(preg_replace('/[^0-9\.]+|)(?添加一行:

$items['qty'] = sprintf('%.1f', $items['qty'])

这可以通过round函数完成

echo round(153.751, 1);  // 153.8

这将有助于

数字格式可以做到这一点。嗨@codaddict,你的sol解决了我的问题:)但你知道如何同时包括“,”和“.”吗?即1.4和1.4都是可以接受的?thanks@mario:您可以将
添加到字符类:
$items['qty']=trim(preg_replace('/[^0-9.,]+|(?
echo round(153.751, 1);  // 153.8