首页 > 解决方案 > 应该匹配 0-999、0.0-999.9 以及 0,0-999,9 的正则表达式

问题描述

我再次与正则表达式作斗争。我需要一个正则表达式,它只匹配 0-999 的数字或 0-999 的数字,带一位小数,例如。0.0-999.9。

我所做的正则表达式/^([1-9][0-9]{0,2})|([1-9][0-9]{0,2})[,.][0-9]$/有一个错误,它也匹配 1. 而不是 1.5,不应该是这种情况。

更多示例:

1 -> Match (in range 0-999)
1. -> No Match (no decimal)
1, -> Again no Match (no decimal)
1,5 -> Matches (in range 0,0-999,9)
1324 -> does not Match (over 999,9)
15.5 -> Matches (in range 0.0-999.9)
999,9 -> Matches (max. reached)

在此先感谢您的帮助。

标签: regextypescript

解决方案


^(?:[1-9]\d{1,2}|\d)(?:[.,]\d)?$应该管用。

演示:https ://regex101.com/r/vsL89V/3


推荐阅读