匹配浮动RegExp

时间:2016-01-13 13:32:55

标签: javascript regex

我需要匹配一个从0到20 的浮点数

所有这些都必须有效:

1.20  
01.20  
12.00  
13,59  
11  
1  
08  
00.50
5,50  

那些:

001,20  
1.200  
13,
13.  
.50

总结一下。

  • 我想要逗号分隔符
  • 分隔符前的一位或两位数(最小值= 00 最大值= 20
  • 分隔符后的零个,一个或两个数字。

我尝试了很多模式,但没有人完全匹配。

1 个答案:

答案 0 :(得分:0)

^([01]?\d)([,.]\d?\d)?$|^20([,.]0?0)?$

匹配从020的所有内容。

See it in action

这个想法是:

  • ^$ - 从一开始直到字符串结尾
  • ([01]?\d) - 小数点前的部分可以是单个数字(\d)或有两位数,其中第一个是01({ {1}})
  • [01]? - 小数点,可以是点或逗号
  • [,.] - 一位或两位数字
  • \d?\d - 浮动部分是可选的
  • ()? - 上述内容匹配,或..
  • | - 只需20
  • 20 - 带有可选的小数部分,由带有一个或两个零的小数点
  • 组成