【问题标题】:Regex to allow ONLY zero before 2 decimal points正则表达式只允许小数点后 2 位为零
【发布时间】:2022-07-22 00:06:43
【问题描述】:

我希望这些是有效的 .10
0.10
.99
0.99
这无效 1
1.00
9.00

^\d{0,0}(.\d{1,2})?$ ^\d{0,1}(.\d{1,2})?$

我希望用户能够 0.99 但不能 1.99 我在供应商 basec 系统中使用这个正则表达式。

我在系统中收到一个错误,说 0.11 使用 ^\d{0,0}(.\d{1,2})?$ 无效 使用 ^\d{0,1}(.\d{1,2})?$

时,所有 0.99 到 9.99 的数字都有效

我希望用户能够输入我无法做到的 .11 和 0.11 帮助是parreciated。

【问题讨论】:

    标签: oracle


    【解决方案1】:

    如果您要验证实际的数字,那么只需使用不等式:

    SELECT *
    FROM yourTable
    WHERE num < 1.00;
    

    否则,如果您确实必须验证数字字符串是否小于 1 并且有 1 或 2 个小数位,并且可以使用可选的前导零,那么请使用 ^0?\.\d{1,2}$

    SELECT *
    FROM yourTable
    WHERE REGEXP_LIKE(num, '^0?\.\d{1,2}$');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多