php只允许字符串中的一个句点

时间:2012-08-14 19:26:12

标签: php post preg-replace

我一直在研究这段代码几个小时,我似乎无法使它工作。我有一个输入字段,允许用户提交某个项目的价格。这是理想的过程:

//Get the post it price and only allow numbers and one period|dot
$price = $_POST['price'];
$price = preg_replace('#[^0-9.]#i', '', $_POST['price']);

所以我只希望每个字符串允许一个句点,所以如果用户输入100.00.00,它将更正并删除第一个句点并将其转换为10000.00 在此之后我想为每个第3个字符添加一个逗号,如下所示:
如果发布的价格是10000.00,它会将其转换为10,000.00。
有什么方法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:3)

$string = "100.00.00";

$array = explode(".", $string);

$last = array_pop($array);

echo number_format(implode("", $array)) . "." . $last;

http://codepad.viper-7.com/t1WuGK