文本调试

手机号和邮箱正则表达式怎么写?

整理手机号、邮箱、用户名、数字等常用表单校验正则,并说明不要过度复杂化。

打开正则表达式测试器

表单正则要够用,不要过度追求完美

手机号、邮箱、用户名这类表单校验,目标通常是挡掉明显错误,而不是用一个表达式覆盖所有真实世界边界。过于复杂的邮箱正则不但难维护,还可能误伤正常用户。

更稳妥的做法是前端做基础格式校验,后端做最终校验,关键字段再通过短信、邮件或业务流程确认。

  • 中国大陆手机号常用:^1[3-9]\d{9}$
  • 普通邮箱可用:^[^\s@]+@[^\s@]+\.[^\s@]+$
  • 用户名可用:^[a-zA-Z0-9_]{4,20}$

测试正则时要准备反例

只拿正确样本测试正则很容易漏问题。建议同时准备空字符串、带空格、长度不足、特殊符号、中文、边界长度等反例。

在线测试时开启全局匹配和忽略大小写前,要确认业务真的需要。修饰符会影响匹配结果,尤其是 g、m、s。

常见写法的风险

\d 可以匹配数字,但如果没有 ^ 和 $ 限制,字符串中只要包含一段数字就可能通过。比如校验手机号时,必须要求整段字符串匹配。

另一个常见问题是没有转义点号。邮箱里的 . 如果写成普通点号,会匹配任意字符。

常见问题

手机号正则要不要写运营商号段?

一般不用写得太死。号段会变化,使用 ^1[3-9]\d{9}$ 更不容易过期。

邮箱正则越长越好吗?

不是。复杂表达式维护成本高,普通业务更适合基础格式校验加邮件验证。

正则里的 ^ 和 $ 是什么?

^ 表示开头,$ 表示结尾,用来确保整段字符串都符合规则。

🛠️ 更多实用工具: JSON格式化 YAML↔JSON XML↔JSON Base64编解码 URL编码 JWT解析 MD5/SHA加密 UUID生成 二维码生成 正则测试 文本Diff 时间戳转换 SQL格式化 Mock数据 图片压缩 图片Base64 颜色转换
📚 热门教程: JSON 格式化报错 时间戳秒/毫秒区别 Base64 中文乱码 URL 空格编码区别 图片压缩到 200KB 手机号邮箱正则 JWT 过期时间 MD5/SHA256 区别 全部教程