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

求验证#分隔1-5数字的JavaScript正则表达式(含规则)

符合需求的正则表达式

直接给出满足所有要求的正则:

^$|^(?=.{1,9}$)[1-5](?:#[1-5])*$

逐部分解释(针对新手)

把正则拆成对应需求的模块,方便理解:

  1. ^$:匹配空输入,满足“输入可以为空”的要求。
  2. (?=.{1,9}$):正向预查规则,强制整个输入的长度在1-9之间,对应“输入最大长度为9”的限制。^和$锁定字符串首尾,确保长度检查覆盖整个内容。
  3. [1-5]:匹配单个1-5的数字,既满足“单个有效数字”的场景,也直接排除了6及以上的无效数字。
  4. (?:#[1-5])*:
    • ?: 表示这是一个非捕获组(仅用于分组,无需单独提取内容)
    • #[1-5] 要求#后面必须跟1-5的数字,既实现了“新增数字用#分隔”的规则,也避免了输入以#结尾的情况
    • * 表示这个组可以出现0次或多次,支持单个数字、1#2、1#2#3等多种合法格式

示例验证

  • 有效输入:
    • 1:匹配单个数字规则,长度符合要求
    • 3#4:3 + #[4],格式和长度均合法
    • 1#5#4:1 + #[5] + #[4],符合所有规则
    • 1#2#3#4:长度7,在限制范围内
    • 1#2#3#4#5:长度9,刚好达到最大限制,合法
  • 无效输入:
    • 3#:结尾为#,无后续有效数字,无法匹配规则
    • 1#2#3#4#5#1:长度11,超过9的限制,被预查规则拦截
    • 6:数字不在1-5范围内,不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:57:35