PHP-从字符串中删除所有非数字字符


PHP - remove all non-numeric characters from a string

对我来说,最好的方法是什么?我应该使用regex还是有其他内置的PHP函数可以使用?

例如,我希望:12 months变成12Every 6 months变成61M变成1,等等

在这种情况下,您可以使用preg_replace;

$res = preg_replace("/[^0-9]/", "", "Every 6 Months" );

$res在这种情况下返回6。

如果还想包括十进制分隔符或千位分隔符,请检查此示例:

$res = preg_replace("/[^0-9.]/", "", "$ 123.099");

$res在这种情况下返回"123.099"

包括句点作为十进制分隔符或千位分隔符:"/[^0-9.]/"

包括昏迷作为十进制分隔符或千位分隔符:"/[^0-9,]/"

包括句点和昏迷作为十进制分隔符和千位分隔符:"/[^0-9,.]/"

使用'D匹配非数字字符。

preg_replace('~'D~', '', $str);