如何修改PHP注册功能手机号正则校验规则,将10位限制改为8位?
错误原因
你之前的修改存在规则错误:[0-7]{8}中的[0-7]限制了仅能输入0-7的数字,不符合手机号允许使用0-9全部数字的要求,只需要修改长度参数即可。原正则里的+属于冗余规则,也可以同步删除简化校验逻辑。
正确修改方案
需要同步修改两处代码的正则规则与提示文本:
- 手机号校验报错逻辑修改为:
if(!preg_match("/^[0-9]{8}$/", $_mobile_number)) { $_mobileErr = '<div class="alert alert-danger"> 仅允许输入8位手机号。 </div>'; }
- 关联校验逻辑修改为:
if( (filter_var($_email, FILTER_VALIDATE_EMAIL)) && (preg_match("/^[0-9]{8}$/", $_mobile_number)) )
可选补充
如果前端表单的手机号输入框设置了maxlength="10"属性,也同步修改为maxlength="8"即可避免用户输入超出长度。
内容的提问来源于stack exchange,提问作者Xin_Naz
相关产品推荐
相关产品推荐

