如何从PHP中的货币分组格式字符串中提取数字

时间:2018-09-06 02:48:53

标签: php regex

我有以下分组货币格式的字符串:

$str = "$1,000,000";

我只想提取1000000以便进行一些计算。我该如何实现?有内置的PHP函数可以这样做吗?否则,我可能需要使用一些RegExp。

编辑

这不是duplicate question,因为这里我们使用货币分组格式的字符串,而不是简单明了的简单文本。

2 个答案:

答案 0 :(得分:4)

您可以用空字符串替换所有非数字:

$str = "$1,000,000";
print(
  preg_replace('/\D+/', '', $str)
);

当然,“非数字”也包括小数点。如果要保留小数点,请改用否定的字符集:

$str = "$1,000,000.00";
print(
  preg_replace('/[^\d.]+/', '', $str)
);

答案 1 :(得分:1)

这里是一种str_replace的方式,假设您的数字仅包含 $ (或)。您包括小数)

$toBeRemoved = array('$', ',');
$str = '$1,000,000';
$cleaned = floatval(str_replace($toBeRemoved, "", $str));
echo $cleaned;