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

正则表达式求助:基于首位数字条件校验第二位数字的实现

正则校验实现方案

不需要嵌套复杂的前瞻、后顾逻辑,直接通过多选分支并列三种互斥的合法组合即可,表达式可读性和维护性更高,完整正则如下:

/^(0[1379]|1(?:5|10)|2[02468])$/

表达式逻辑说明

  • ^ 锚定字符串起始位置,避免匹配到字符串中间的无关片段
  • 三个分支通过|分隔,分别对应第一位为0、1、2时的合法规则:
    • 0[1379]:第一位为0时,第二位必须是1、3、7、9中的奇数
    • 1(?:5|10):第一位为1时,后续内容为5或者10(注:单个数字位取值范围为0-9,此处按你给出的规则原文编写,如果“10”为笔误、实际要求第二位为0或5,将该段替换为1[05]即可)
    • 2[02468]:第一位为2时,第二位必须是0、2、4、6、8中的偶数
  • $ 锚定字符串结束位置,避免字符串末尾多余字符漏过校验
  • (?:)为非捕获组,仅做逻辑分组不保存匹配内容,性能优于普通捕获组

沿用前瞻/后顾写法的实现

如果你需要保持之前使用后顾语法的编写思路,补全剩余两个分支的后顾判断即可,对应正则如下:

/^[012]((?<=0)[1379]|(?<=1)(?:5|10)|(?<=2)[02468])$/

该写法逻辑和分支写法完全一致,先匹配第一位的合法取值[012],再通过后顾判断当前第一位的具体值,匹配对应要求的后续内容。

匹配效果参考

  • 合法可匹配:01、03、07、09、15、110、20、24、28
  • 非法不可匹配:00、02、11、12、21、23、30、0a、151

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:48:41