我有一段代码可以确保手机字段中包含某些内容:
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>'; }