我有一个在PHP中用来处理数字的函数。目的是清除数字,并可选择将空值转换为零。我开始使用它准备sql,但现在在更多的地方使用。这是:
function clean_num ($num, $null_to_zero = true) {
$num = preg_replace("/[^-0-9.0-9$]/","",$num);
if (strlen($num) == 0)
$num = ($null_to_zero) ? 0 : null;
else if (strlen($num) == 1 && ($num == '-' || $num == '.'))
$num = ($null_to_zero) ? 0 : null;
return $num;
}
有没有人对更快,更好的方法有任何想法?它的工作原理,正则表达式很简单,应该涵盖我需要的所有情况,但是...一个diff正则表达式可能会做所有相同的没有其他垃圾。正则表达不是我的力量。谢谢!
答案 0 :(得分:3)
正则表达式[^-0-9.0-9$]
匹配任何
.
$
char类中不需要两个0-9
,所以你的正则表达式有效:[^-0-9.$]
或[^-\d.$]