填报校验字段格式为2023-01-01或者2023/01/01,其他则报错

请问在数据校验中改如何实现呢?会用到excel导入,所以必须要在填报校验中增加规则,谢谢

FineReport 一口十个松花蛋 发布于 2023-6-19 15:03
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-6-19 15:24

REGEXP(a2, "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(-|/)(((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]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))(-|/)02(-|/)29)") 

这个就会按你说的两种格式格式校验

  • Z4u3z1 Z4u3z1 2023/05-05 这种格式也能通过校验
    2023-06-19 15:37 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-6-19 15:07(编辑于 2023-6-19 15:36)

https://c.runoob.com/front-end/854/ 

用正则表达式

--------------

or(REGEXP(I10, "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((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]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)"),REGEXP(I10, "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})/(((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]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))/02/29)"))

image.png

最佳回答
0
FuFuLv5初级互助
发布于2023-6-19 15:08

对当前单元格的长度做是否为10 的判断,以及对其中的 ‘/’和‘-’个数做是否是2 的判断。因为这样,你日期字段里需要用文本控件。不如在excel里就做调整,然后格式就限定一种,不同就报错返回改好之后重新导入

最佳回答
0
Gun鹏Lv5初级互助
发布于2023-6-19 15:09(编辑于 2023-6-19 15:39)

数据校验添加公式:(find("-", 日期所在单元格, 0) = 5 && find("-", 日期所在单元格, 5) = 8) || (find("/", 日期所在单元格, 0) = 5 && find("/", 日期所在单元格, 5) = 8)

最佳回答
0
ID1208Lv6高级互助
发布于2023-6-19 15:12
  • 5关注人数
  • 570浏览人数
  • 最后回答于:2023-6-19 15:39
    请选择关闭问题的原因
    确定 取消
    返回顶部