输入文本框需要正则表达式,允许数字在0到100之间,最多2个小数,例如0.22到100.00

时间:2019-05-23 05:53:39

标签: regex angular7

我需要一个正则表达式模式以允许从0到100的数字带有小数。

我尝试了以下模式,但是它允许数字大于100:

^ 100(\.[0]{ 1, 2}) ?| ([0 - 9] | [1 - 9][0 - 9])(\.[0 - 9]{ 1, 2}) ? $

2 个答案:

答案 0 :(得分:2)

在您的模式中,您要包含有意义的匹配空格。

如果没有空格,pattern将是^100(\.[0]{1,2})?|([0-9]|[1-9][0-9])(\.[0-9]{1,2})?$

要匹配100个可选点和1个或2个零,或匹配一个0-99位数字,后跟1个或2个小数,因此您可以使用{{将整个模式包装在非捕获组^(?:....)$中3}}中的一种:

^(?:100(?:\.0{1,2})?|(?:[1-9]\d|\d)(?:\.\d{1,2})?)$

查看alternation

答案 1 :(得分:1)

尝试:

/^(?:100(?:\.0{1,2})?)$|^(?:[1-9]\d?|0)(?:\.\d{1,2})?$/

https://regex101.com/r/FxoGO9/2