填报表单如何校验日期格式既为yyyy-mm-dd格式,也可为yyyy-mm-ddhh:mm:ss

在内置校验中,校验日期字段既可以是yyyy-mm-dd格式的,也可以是yyyy-mm-dd hh:mm:ss格式的。若为这两种格式的,就都可以校验通过。

目前我只写出校验为其中一种格式的公式:

REGEXP(H2, "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$")

上面这个是yyyy-mm-dd hh:mm:ss的校验,yyyy-mm-dd格式的正则表达式我也知道,:

^[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$

但不知道如何把这两种格式都放在日期字段的校验中

FineReport 用户H5691967 发布于 2020-11-2 14:10
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
张洪威Lv6高级互助
发布于2020-11-2 14:16(编辑于 2020-11-2 14:39)

OR(REGEXP1,RGEXP2)  

用or,然后两个正则换成你写的两个就好了。


OR(REGEXP("2020-02-02", "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$"),REGEXP("2020-02-02", "^[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$"))


image.png

  • 用户H5691967 用户H5691967(提问者) 还是没有校验到也不知道为什么,公式显示是正确的 OR( REGEXP(H2, \"^((((1[6-9]|[2-9]\\\\d)\\\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\\\d|3[01]))|(((1[6-9]|[2-9]\\\\d)\\\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\\\d|30))|(((1[6-9]|[2-9]\\\\d)\\\\d{2})-0?2-(0?[1-9]|1\\\\d|2[0-8]))|(((1[6-9]|[2-9]\\\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\\\d):[0-5]?\\\\d:[0-5]?\\\\d$\"), REGEXP(H2, \"^[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$\") )
    2020-11-02 14:32 
  • 用户H5691967 用户H5691967(提问者) 当为yyyy-mm-dd格式的时候就会提示格式不对
    2020-11-02 14:35 
  • 张洪威 张洪威 回复 用户H5691967(提问者) 看截图,测的没问题啊。
    2020-11-02 14:39 
  • 用户H5691967 用户H5691967(提问者) 回复 张洪威 我的数据库表日期字段是date类型的,是yyyy-mm-dd hh:mm:ss 格式的。我在设计器里给日期字段设置为日期控件,并且格式为yyyy-mm-dd hh:mm:ss。然后又在报表填报属性-数据校验中添加了上面那段校验。导入数据的时候它会自动把yyyy-mm-dd格式在校验提交时自动转换成了yyyy-mm-dd hh:mm:ss(它自动补零了)。但是在我修改数据把数据查询出来的时候,日期字段就变成yyyy-mm-dd格式,并且在校验时报错,一定要重新点一下日期字段的内容,点击后就自动补零了,才可以提交
    2020-11-02 14:51 
  • 张洪威 张洪威 回复 用户H5691967(提问者) 你把单元格字段的格式设置一下,设置成yyyy-mm-dd hh:mm:ss 格式的。
    2020-11-02 14:58 
  • 2关注人数
  • 1554浏览人数
  • 最后回答于:2020-11-2 14:39
    请选择关闭问题的原因
    确定 取消
    返回顶部