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

如何编写正则表达式限制字符串连续数字不超5个、总数字不超8个?

正则调整方案

你原来的正则存在三个明显缺陷:

  • 未统计全字符串的数字总数量,无法拦截总数字超过8个的场景
  • 未允许匹配空格,不符合示例中带空格的输入规则
  • 逻辑覆盖不全,存在边缘场景误判

最终可用正则

/^(?!(?:\D*\d){9})(?!.*\d{6})[a-zA-Z\d\s]*$/

规则拆解

  • 开头^(?!(?:\D*\d){9}):零宽负向断言,限制全字符串内数字最多出现8次(匹配到9次数字的情况直接不通过)
  • 中间(?!.*\d{6}):零宽负向断言,限制不能出现6个及以上的连续数字
  • 结尾[a-zA-Z\d\s]*$:匹配所有允许的字符(大小写字母、数字、空格),直到字符串结束

示例匹配验证

所有示例符合预期,少数标注和规则冲突的为示例笔误:

  • 12345 => 总数字5、连续数字5,匹配通过
  • Yograj => 无数字,匹配通过
  • Yograj123456 => 存在6个连续数字,匹配不通过
  • 12345Yograj => 总数字5、连续数字5,匹配通过
  • 12345Yograj12345 => 总数字10个,按规则应为不通过,属于示例笔误
  • Yograj123456Yograj => 存在6个连续数字,匹配不通过
  • Yograj123Varsolkar456789 => 存在6个连续数字,匹配不通过
  • 123Yograj45678Varsolkar => 总数字3+5=8、单段连续最多5,匹配通过
  • A1B2C3D4e5f6g7h8i9j0 => 总数字10个,匹配不通过
  • Yograj 890 Varsolkar 78455 => 总数字3+5=8、单段连续最多5,按规则应为通过,属于示例笔误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:48:05