PHP - 验证电话号码

时间:2013-11-02 20:29:27

标签: php regex validation

编辑:我不需要电话号码的正则表达式,我已经有了。我需要的是帮助理解如何将其插入到我上面链接的现有代码中。如果你真的读过我的问题,你会发现我正在尝试在原始代码中学习我需要修改的内容,而不仅仅是复制并粘贴其他人的正则表达式而不知道如何处理它。谢谢! 编辑x2:我想通了..无论如何,谢谢。 (见下面的答案)

我有一段代码可以确保手机字段中包含某些内容:

if (!empty($_POST['hphone'])) {$hphone = $_POST['hphone'];} else {$hphone = NULL; echo '<span class="error">Please enter a home phone number.</span><br />';}

为了更精确,我想我会尝试检查它是否是有效的电话号码。我找到了一个例子并尝试将它们组合起来:

if (!empty($_POST['hphone']) && !preg_match("/^([1]-)?[0-9]{3}-[0-9]{3}-[0-9]{4}$/i", $phone)) {$hphone = $_POST['hphone'];} else {$hphone = NULL; echo '<span class="error">Please enter a home phone number.</span><br />';}

这样做的原因是表单仍然提交,但它没有发现该字段中有一个字母。它只是提交。我把它修改了一些,说它没有有效的数字,即使它是。我不是一个PHP大师所以我只是想用我必须工作的东西和其他人的例子来做我觉得有意义的事情。对不起有关此事的另一篇文章,但我找不到我到底发生了什么。谢谢!

答案:我最后以不同的方式搞清楚了。以下是适用于我的代码:

if (preg_match("/^([1]-)?[0-9]{3}-[0-9]{3}-[0-9]{4}$/i", $_POST['hphone'])) { $hphone = $_POST['hphone']; } else { $hphone = NULL; echo '<span class="error">invalid</span>'; }

0 个答案:

没有答案