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

正则检测字符串是否包含2个正斜杠或2个连字符的正确写法

正则实现日期分隔符匹配方案

问题说明

需要编写正则检测日期类字符串,要求字符串内包含2个正斜杠 或 2个连字符作为分隔符,以下格式为合法可匹配内容:

  • 10/25/1984
  • 2005/06/24
  • 1882-03-14
  • 05-29-1932

原有失效正则为:/[\-\/{2,}/g

失效原因

原有正则存在基础语法错误,完全无法正常运行:

  1. 字符集标记[没有对应的闭合],正则结构不合法
  2. 量词{2,}被错误写在字符集内部,字符集内的符号只会被当作普通字符匹配,无法实现“计数匹配2个分隔符”的逻辑
  3. 没有做分隔符一致性校验,无法拦截斜杠、连字符混用的非法日期格式

可用正则

方案1:严谨匹配完整日期格式(推荐)

正则代码:

/^\d{1,4}([\/-])\d{1,2}\1\d{1,4}$/g

逻辑说明:

  • ^\d{1,4}:匹配字符串开头1-4位数字,兼容「月/日/年」「年/月/日」两种日期顺序
  • ([\/-]):捕获第一个分隔符,仅允许为正斜杠/或连字符-
  • \d{1,2}:匹配中间1-2位数字,对应月份、日期段
  • \1:反向引用第一个捕获到的分隔符,强制第二个分隔符和第一个完全一致,既保证正好有2个同类型分隔符,又能拦截分隔符混用的非法情况
  • \d{1,4}:匹配末尾1-4位数字,对应年份或日期段
  • $:匹配字符串结尾,避免字符串夹带多余非法字符

方案2:仅校验是否存在2个同类型分隔符

如果不需要校验日期数字结构,只需要判断字符串里是否存在2个正斜杠或2个连字符,可使用更轻量的正则:

/(\/.*\/|-.*-)/g

逻辑为匹配「两个正斜杠夹任意内容」或「两个连字符夹任意内容」的字符串段,只要存在对应段即判定符合要求。

匹配效果验证

  • 合法样例均能正常匹配:10/25/1984、2005/06/24、1882-03-14、05-29-1932
  • 非法样例会被拦截:
    • 分隔符混用:10/25-1984、2005-06/24
    • 分隔符数量不符:10/251984(仅1个斜杠)、10-25-19-32(3个连字符)
    • 夹带其他字符:10/25/1984abc、x1882-03-14

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:54:25