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

时间:2016-03-16 04:25:28

标签: javascript java regex validation

如何使用正则表达式验证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

有人可以帮忙吗。

4 个答案:

答案 0 :(得分:2)

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

无论如何,让我看看我是否直接遵守规则:

  • 小数点是可选的
  • 如果没有给出小数点:
    • 介于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})$/

您可以在regex101上看到第二个有效。

答案 1 :(得分:0)

Javascript正则表达式:

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

Javascript demo

答案 2 :(得分:0)

如果javascript然后在正则表达式下工作:

gulp-imagemin: Minified 1 image (saved 0 B - 0%)

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

答案 3 :(得分:0)

谢谢你,$('.dropdownSelectopt').hide(); $('.dropdownSelectopt li').each(function(){ $(this).click(function(){ value = $(this).html(); cl = $(this).parents().find('.route').html(value); console.log(cl +'test'); }); }); $('.dropdownSelect').click(function(){ $('.dropdownSelectopt').toggle(); }); 正是我想要的,这符合我的目的。