正则表达式用于验证两个范围之间的数字

Regex to validate number between two ranges

本文关键字:范围 两个 之间 数字 用于 验证 正则表达式      更新时间:2023-09-26

如何使用正则表达式验证 0 到 99999.99 之间的数字?

基本上它应该接受像0.01, 0000.01, .01 and 9999.99这样的值

它也应该只有two values after dot(.)

尝试了下面这样的东西,但它对我不起作用。

/^[0-9]{1,5}.[0-9]{2}$/ 
decimal is optional

有人可以帮忙吗?

.字符在正则表达式中具有特殊含义,因此您需要对其进行转义。

无论如何,让我看看我是否掌握了规则:

  • 小数点是可选的
  • 如果未给出小数点:
    • 介于 1 到 5 位数字之间
  • 如果存在小数点:
    • 小数点前 0 到 5 位之间的数字
    • 小数点后 1 到 2 位数字之间

由于位数取决于小数点的存在,因此您使正则表达式有两个选择,用 | 分隔。

选项 1(无小数点):[0-9]{1,5}

选项 2(小数点):[0-9]{0,5}'.[0-9]{1,2}

由于您需要锚点(^$),因此您可以将它们放在两个选项中,或者用括号将选项集括起来。要使其不捕获,请使用 (?:xxx)

最终正则表达式是其中之一:

/^[0-9]{1,5}$|^[0-9]{0,5}'.[0-9]{1,2}$/
/^(?:[0-9]{1,5}|[0-9]{0,5}'.[0-9]{1,2})$/

您可以看到第二个在正则表达式 101 上生效。

如果是 javascript,那么下面的正则表达式将起作用:

^'d{0,5}((('.){0})|(('.){1}'d{1,2}))$

上述所有案例都令人满意。

谢谢你,^(?:'d{1,5}(?:'.'d{1,2})?|'.'d{1,2})$这就是我想要得到的,这符合我的目的。

Javascript 正则表达式:

/^'d{1,5}('.'d{1,2})?$/

Javascript 演示