我想在用户网站注册时验证用户的电话号码。我使用此代码执行此操作:
$mobile = mysql_real_escape_string($_POST['mobile']);
//check mobile validity
$options = array('options' => array('min_range' => 0));
if(filter_var($mobile, FILTER_VALIDATE_INT, $options) == FALSE)
{
$_SESSION['warnings']['warning_mobile'] = ENTER_VALID_MOBILE;
}
else
{
$_SESSION['warnings']['warning_mobile'] = '';
$_SESSION['temp_post']['mobile'] = $mobile;
}
正如你可以看到代码检查这个数字是否包含有效的int数字,如果一切正常,如果没有,它会给我错误信息。
我的问题是:此代码不接受以零开头的数字(例如0 555 555 5555,这是无效数字)。
有没有办法让这段代码接受从零开始的数字?
答案 0 :(得分:0)
留下一个事实,即使用正则表达式可以轻松解决这个问题,需要考虑以下几点:
$mobile
是一个字符串:filter_var($mobile, FILTER_VALIDATE_INT)
将永远返回虚假。如果您需要支持"普通数字"只是,看看is_numeric。它检查变量是数字还是仅由数字构成的字符串。
关于您的问题:
有没有办法让这段代码接受这个数字开头 零??
您的代码无效,因为$mobile
不是整数,而不是因为您的数字以0开头。
最后的建议仍然是使用正则表达式,这是解决此类问题的最佳方法。