校验漏网的代价
用户输错手机号收不到验证码,输错邮箱收不到账单,客服工单全是这种。前端拦一道、后端再拦一道,脏数据进不了库,事后清洗成本直接归零。
手机号:号段跟上时代
别再用五年前的老号段表,新号段年年加。通用写法 1[3-9]\d{9} 覆盖现有全部号段,简单够用;要精确到运营商再加二三位前缀限定,便民校验别过度设计。
注意:虚拟运营商、物联卡号段特殊,强校验前确认业务要不要放行,别误杀真实用户。
邮箱:够用比完美重要
RFC 标准的邮箱正则长到没法看,业务场景用 [\w.-]+@[\w.-]+\.[a-zA-Z]{2,} 足矣;真要确认有效性,发一封验证邮件比任何正则都准。
在线调试三步走
把正则贴进在线正则测试:第一步贴 10 条正反样本,第二步看高亮是否全中,第三步用替换和分组提取验证。样本里务必包含“最刁钻的那一条”,上线才不翻车。
前后端双保险
前端校验为了体验,后端校验为了安全,同一条正则两边各放一份;错误提示说人话(“手机号应为 11 位数字”),别甩“非法输入”让用户猜。