【发布时间】:2015-07-11 00:46:36
【问题描述】:
我写了这个regex 来检查我表单中的输入数字:
if (!preg_match("/^0\d{10}+|^9\d{9}+/",$_POST['number'])){
echo "Error";
}else{
echo "Ok";
}
此代码将检查最小长度,但如果长度超过 10 或 9 个字符,则此正则表达式无法工作!
我该怎么办?我应该在 Regex 之后检查 strlen 还是可以限制最大长度?
更新:
如果以 0 开头,字符串长度应该正好是 10 个字符,如果以 9 开头应该正好是 9 个字符,并且应该以其他方式返回 false(或多或少的长度,以不同的数字开头......)
【问题讨论】:
-
@MarcB 谢谢,我不明白你的意思,我也更新了我的问题
-
为什么在七个地狱中你会验证一个整数作为一个字符串并在正则表达式中进行长度检查?
intval($_POST['number']) >= 100000000 && intval($_POST['number']) < 1000000000 -
@Sammitch:仅仅因为它是数字并不意味着它是一个整数。例如
00000000001!=1.