ng-pattern允许小数比率

时间:2016-12-30 11:21:26

标签: javascript angularjs regex ng-pattern

我有一个ng-pattern验证4:6的比例,如下所示:

ng-pattern="/^(\d+):(\d+)$/"

我还想验证十进制数是否作为口粮输入以及上述验证。例如:5.4:7.1 我把ng-pattern作为

来欺骗
ng-pattern="/^(\.[0-9]{1,2}+):(\.[0-9]{1,2}+)$/"

但不会触发验证。请告诉我哪里出错了。

1 个答案:

答案 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+$/"

the regex demo

或者,您可以使用

ng-pattern="/^(\d+\.)?\d+:(\d+\.)?\d+$/"

仅允许具有非空整数部分的数字。请参阅this regex demo