【问题标题】:Regex to check amount is greator then one正则表达式检查金额大于一
【发布时间】:2015-11-26 14:53:20
【问题描述】:

我有一个正则表达式

^(?=.*[1-9])\\d{0,5}(?:\\.\\d{0,2})?$

检查金额应大于0,最多可以包含小数点前五位和可选的小数点以及小数点后2位。 这里(?=.*[1-9]) 是检查字符串中(1-9) 中的任何数字是否应该最近出现一次。

但我想修改它以检查大于一(1)的金额,所以我希望(?=.*[1-9]) 只检查直到出现小数点,即 0.1,它应该返回 false。 其他条件也应该满足。

注意:小数点前的位数不是固定的,会从1到5,所以不能修改为(?=.{0,5}[1-9])

【问题讨论】:

  • 为什么要使用正则表达式?使用> 运算符?
  • 亲爱的@Uma,我需要在JSP 中使用它,而在输入框中我使用的是dojo。无论如何,根据我的要求修改了anubhava

标签: javascript regex


【解决方案1】:

您可以使用这个基于否定的正则表达式来修复它:

^(?=[^.]*[1-9])\\d{0,5}(?:\\.\\d{0,2})?$

RegEx Demo

[1-9] 之前的[^.]* 将匹配除小数点以外的任何字符,因此不允许将0.45 作为有效数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 2013-07-25
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多