我有一个ng-pattern
验证4:6的比例,如下所示:
ng-pattern="/^(\d+):(\d+)$/"
我还想验证十进制数是否作为口粮输入以及上述验证。例如:5.4:7.1
我把ng-pattern
作为
ng-pattern="/^(\.[0-9]{1,2}+):(\.[0-9]{1,2}+)$/"
但不会触发验证。请告诉我哪里出错了。
答案 0 :(得分:3)
您的^(\.[0-9]{1,2}+):(\.[0-9]{1,2}+)$
不是JS中的有效模式,因为限制量词{min,max}
不能跟+
一起使用(JS正则表达式引擎不支持占有量词)。即使您删除了这些加号并使用^(\.[0-9]{1,2}):(\.[0-9]{1,2})$
,该模式也会匹配.1:.3
或.34:.45
等字符串,并且不允许使用3:45
(点是强制性的)。
如果要允许.5
:
ng-pattern="/^\d*\.?\d+:\d*\.?\d+$/"
或者,您可以使用
ng-pattern="/^(\d+\.)?\d+:(\d+\.)?\d+$/"
仅允许具有非空整数部分的数字。请参阅this regex demo。