在表单验证期间,我希望能够获取输入的值(如"$5,000")并去除逗号和美元符号,返回"5000"之类的值。因此,我创建了一个如下所示的回调函数:
function convert_to_number($value)
{
$result = preg_replace('/['$,]/', '', $value);
return $result;
}
奇怪的是,它没有去掉美元符号或逗号,而是删除它和它后面的每个字符(因此 5,000 美元值返回 0,或 5,000 返回 5)。
我还尝试了以下变体:
function convert_to_number($value)
{
$result = str_replace("$", "", $value);
$result = str_replace(",", "", $result);
return $result;
}
同样的事情发生了。这简直让我难以置信。知道这里会发生什么吗?
不
返回结果尝试发送实际值,使用结果进行验证,
function convert_to_number($value)
{
$result = preg_replace('/['$,]/', '', $value);
return $value;
}