我有一个表单,用户可以在其中输入他们在电话帐单上花费的金额,然后告诉他们如果他们切换到vonage,skype等,他们可以节省多少。
我在网址中传递值“$ monthlybill”,然后对其进行一些数学计算。问题是如果用户在表单中写入“$ 5”而不是“5”,则会中断并且不会被识别为数字。如何从价值中剥离美元符号?
答案 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);