允许小数比率的 ng-pattern

ng-pattern that allows decimal ratios

我有一个 ng-pattern 可以验证像 4:6 这样的口粮,如下所示:

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

我还想验证是否将十进制数与上面的配给一起输入 validation.Example:5.4:7.1 我尝试将 ng-pattern 作为

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

但没有触发 validation.Please 提示我哪里出错了..

您的 ^(\.[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