从php值中剥离$

时间:2009-02-24 00:36:45

标签: php

我有一个表单,用户可以在其中输入他们在电话帐单上花费的金额,然后告诉他们如果他们切换到vonage,skype等,他们可以节省多少。

我在网址中传递值“$ monthlybill”,然后对其进行一些数学计算。问题是如果用户在表单中写入“$ 5”而不是“5”,则会中断并且不会被识别为数字。如何从价值中剥离美元符号?

4 个答案:

答案 0 :(得分:7)

$monthlybill = str_replace("$", "", $monthlybill);

如果您正在使用现金金额,您可能还想查看money_format function.

答案 1 :(得分:3)

Ólafur's解决方案有效,可能就是我使用的,但您也可以这样做:

$monthlybill = ltrim($monthlybill, '$');

这会删除字符串开头的$。

然后,您可以根据需要进一步验证它是金额。

答案 2 :(得分:0)

function extract_decimal($str)
{
    $match = preg_match('/-?\d(\.\d+)?/', $str, $matches);
    return $match ? $matches[0] : null;
}

此功能将删除任何不属于该数字的内容(包括美元符号),并且还支持负数和小数值。

答案 3 :(得分:0)

考虑到这是用户输入,您可能想要从变量中删除所有非数字字符。

$BillAmount = preg_replace('/[^\d.]/', '', $BillAmount);