我有一个 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-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 .
关于javascript - 允许小数比的 ng-pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41395451/