正则表达式检验日期

想知道文本控件用正则表达式检验输入的是否是日期应该怎么写,目前找到一个比较全面的

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

但是这个输入年份的时候可以输0102年,0999年,怎么修改能只输入2000年后的年份。

FineReport 小枫残月 发布于 2023-9-18 14:33
1min目标场景问卷 立即参与
回答问题
悬赏:8 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
Z4u3z1Lv6专家互助
发布于2023-9-18 14:39

^([2-9][0-9]{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

  • 小枫残月 小枫残月(提问者) 日 如果只能选择最后一天该怎么写
    2023-09-18 14:55 
  • Z4u3z1 Z4u3z1 回复 小枫残月(提问者) 不好写得 用帆软公式DATEINMONTH() 直接给它转成最后一天把
    2023-09-18 15:04 
最佳回答
0
ID1208Lv6高级互助
发布于2023-9-18 14:41

^(20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$

image.png

最佳回答
0
snrtuemcLv8专家互助
发布于2023-9-18 14:42

试试这个

((((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))/(20[0-9]{2}))|(02/29/(20(0[48]|[2468][048]|[13579][26])|2000))))

  • 2关注人数
  • 311浏览人数
  • 最后回答于:2023-9-18 14:42
    请选择关闭问题的原因
    确定 取消
    返回顶部