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

时间:2015-11-30 07:29:00

标签: php string

对我来说,最好的方法是什么?我应该使用正则表达式还是我可以使用另一个内置的PHP函数?

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

谢谢

2 个答案:

答案 0 :(得分:77)

在这种情况下,您可以使用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,。] /"

答案 1 :(得分:39)

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

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