You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求可判定全相同数字手机号无效的正则表达式(7-15位)

解决方案:手机号有效性正则匹配(排除全相同数字)

原正则的问题

你的正则(?!(\d)\1{6})([0-9]{7,15})存在两个核心问题:

  1. 逻辑错误:负向预查(?!(\d)\1{6})会排除所有包含连续7个相同数字的字符串,但你的需求是仅排除所有数字完全相同的手机号(比如11111112这类有部分相同但存在不同数字的应该判定为有效),这完全违背了你的预期。
  2. 缺少锚定:没有^和$锚定字符串首尾,会导致匹配长文本中的子串(比如abc1234567def会被误判为匹配),而非完整的手机号。

正确正则表达式

^(\d)(?!\1+$)\d{6,14}$

正则逻辑拆解

  • ^:锁定字符串开头,确保匹配完整手机号
  • (\d):捕获手机号的第一个数字
  • (?!\1+$):负向预查,验证从当前位置到结尾不是全部重复第一个捕获的数字(即至少存在一个不同数字)
  • \d{6,14}:匹配剩余的6-14位数字,加上第一个数字后总长度正好在7-15位区间内
  • $:锁定字符串结尾,避免匹配不完整的手机号

测试验证

  • 无效(全相同数字):0000000、111111111111111(15位全1)→ 不匹配
  • 有效(存在不同数字):11111112、1234567、9999999998→ 匹配
  • 长度不符合:123456(6位)、1234567890123456(16位)→ 不匹配

内容的提问来源于stack exchange,提问作者Rahul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:55:17