想校验0-99的数字,不允许出现00,01,02这类的数字,这样写正则总是能成功匹配011

想校验0-99的数字,不允许出现00,01,02这类的数字,这样写正则总是能成功匹配011

REGEXP(F2,"^(0|([1-9]\\d{0,1}))$")

FineReport 哒哒哒哒崽丶 发布于 2023-6-12 15:22
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
哒哒哒哒崽丶Lv3见习互助
发布于2023-6-12 16:06

我知道了,011帆软会先转换成数字11,然后再把数字11转换成字符串11去匹配"^(0|([1-9]\\d{0,1}))$",所以011也能匹配成功了,就离谱

最佳回答
0
孤陌Lv6资深互助
发布于2023-6-12 15:24

直接用数字控件 就可以来 设置最大数和最小数 设置为整数就可以了

  • 哒哒哒哒崽丶 哒哒哒哒崽丶(提问者) 实际需求是匹配百分数,0.1234%或者11.1234%,但是前两位就一直设置不成功
    2023-06-12 15:25 
  • 孤陌 孤陌 回复 哒哒哒哒崽丶(提问者) 入库的时候 填写0.1234 把百分比去了 显示的时候再转为百分比 我一直不建议数据库存百分比数据
    2023-06-12 15:28 
  • 孤陌 孤陌 回复 哒哒哒哒崽丶(提问者) 如果非要显示的时候显示百分比 那就弄一个公式形态
    2023-06-12 15:29 
  • 哒哒哒哒崽丶 哒哒哒哒崽丶(提问者) 回复 孤陌 是存的小数,但是为了防止有人乱填,业务部门都是导出的Excel,都不乐意自己改一下格式
    2023-06-12 15:31 
  • 孤陌 孤陌 回复 哒哒哒哒崽丶(提问者) 那你做显示报表的时候 转换成百分比就好了啊 这样导出就没有问题了啊
    2023-06-12 15:34 
最佳回答
0
坚定的小帆薯Lv7高级互助
发布于2023-6-12 15:25(编辑于 2023-6-12 15:25)

填报么,如果是,可以直接限制填报控件为数字控件或者入库字段为数字型,这样就不存在01的情况了

  • 哒哒哒哒崽丶 哒哒哒哒崽丶(提问者) 实际需求是匹配百分数,0.1234%或者11.1234%,但是前两位就一直设置不成功
    2023-06-12 15:26 
  • 坚定的小帆薯 坚定的小帆薯 回复 哒哒哒哒崽丶(提问者) 你也说了可能有人乱填,乱填的数据是没有规则的。这种情况下,也就算用正则匹配,可能也有漏网之鱼。 这种应该从规则上优化: ①先统一按照0-1不带百分号处理; ②如果剩余数据较多,在按照带百分号处理剩余的; ③剩余的数据打回,让业务部门纠正 后续,把原业务数据填报口子优化,统一口径即可
    2023-06-12 15:50 
  • 坚定的小帆薯 坚定的小帆薯 回复 哒哒哒哒崽丶(提问者) 以上为个人思路,仅供参考~
    2023-06-12 15:51 
  • 2关注人数
  • 539浏览人数
  • 最后回答于:2023-6-12 16:06
    请选择关闭问题的原因
    确定 取消
    返回顶部