允许小数比率的 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。
我有一个 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。