求正则表达式,匹配大于0,小于等于100,并且最多可保留2为小数。我用来匹配退款金额,谢谢 10
1个回答
展开全部
^\d{1,2}(\.\d{1,2})$
这个匹配的是:1位或2位数 后面跟 小数点和1位或2位小数(小数点和小数可以没有)
可以匹配的值的示例:0,0.00,3,3.44,03.00,45.03,99.99
以上是比较简单的写法,但是0和0.00的情况就需要在判断一次去排除。以及03.00的情况看是否不合符规范。
比较严谨的可以这样
^0\.\d[1-9]$|^0\.[1-9]\d$|^[1-9](\.\d{1,2})?$|^[1-9]\d(\.\d{1,2})?$
这个匹配了很多种情况,每个 | 分割的一种情况,分别是(以下x表示任意数字,y表示非0的数字)
0.xy 、0.yx 、y.xx(.xx可以没有) 、yx.xx(.xx可以没有)
这四种情况包括了0到100最多2位小数的所有情况
这个正则就是严格匹配0.01到99.99中所有的整数和小数(最多两位小数)。其中01、00.12、09.34等也会被视为非法的
这个匹配的是:1位或2位数 后面跟 小数点和1位或2位小数(小数点和小数可以没有)
可以匹配的值的示例:0,0.00,3,3.44,03.00,45.03,99.99
以上是比较简单的写法,但是0和0.00的情况就需要在判断一次去排除。以及03.00的情况看是否不合符规范。
比较严谨的可以这样
^0\.\d[1-9]$|^0\.[1-9]\d$|^[1-9](\.\d{1,2})?$|^[1-9]\d(\.\d{1,2})?$
这个匹配了很多种情况,每个 | 分割的一种情况,分别是(以下x表示任意数字,y表示非0的数字)
0.xy 、0.yx 、y.xx(.xx可以没有) 、yx.xx(.xx可以没有)
这四种情况包括了0到100最多2位小数的所有情况
这个正则就是严格匹配0.01到99.99中所有的整数和小数(最多两位小数)。其中01、00.12、09.34等也会被视为非法的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询