RegEx - 精度为2或格式错误的十进制数

时间:2017-09-27 04:44:15

标签: regex numbers decimal-point

我需要一个RegEx模式,该模式将匹配有效的十进制数字字符串,带有两个小数位,或者只有当格式错误的数字是末尾带小数位的整数时才会出现格式错误的数字。

这是关于在小数点后两位实现匹配的一个很好的讨论

Simple regular expression for a decimal with a precision of 2

但是,我需要以下字符串来匹配:

匹配度:

  • 3432.56
  • 3434
  • 3432.8
  • 7645.0
    1. (特例)

不匹配:

  • 干酪
  • 78分之3434
  • 43424.654

FYI:这是用于屏蔽输入字段,以便用户可以输入任意两位数字。目前的问题是该字段拒绝小数位,因为它不会将其识别为十进制数,除非用户点击左键将光标带回一个字符,然后按小数点键。

1 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

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

Click for Demo

<强>解释

  • ^ - 字符串的开头
  • \d+ - 匹配1+位数
  • (?:\.\d{0,2})? - 匹配小数后跟0到2位数。 ?使整个部分成为可选部分,以便允许整数。
  • $ - 字符串结尾