Javascript 允许十进制比率的ng模式
我有一个Javascript 允许十进制比率的ng模式,javascript,angularjs,regex,ng-pattern,Javascript,Angularjs,Regex,Ng Pattern,我有一个ng模式,它验证了4:6的定量,如下所示: ng-pattern="/^(\d+):(\d+)$/" 我还想验证十进制数是否与上述验证一起作为定量输入。示例:5.4:7.1 通过将ng模式as ng-pattern="/^(\.[0-9]{1,2}+):(\.[0-9]{1,2}+)$/" 但是没有触发验证。请告诉我哪里出了问题。您的^(\.[0-9]{1,2}+)(\.[0-9]{1,2}+)$在JS中不是有效的模式,因为限制量词{min,max}后面不能跟+(JS regex引擎
ng模式
,它验证了4:6的定量,如下所示:
ng-pattern="/^(\d+):(\d+)$/"
我还想验证十进制数是否与上述验证一起作为定量输入。示例:5.4:7.1
通过将ng模式as
ng-pattern="/^(\.[0-9]{1,2}+):(\.[0-9]{1,2}+)$/"
但是没有触发验证。请告诉我哪里出了问题。您的^(\.[0-9]{1,2}+)(\.[0-9]{1,2}+)$
在JS中不是有效的模式,因为限制量词{min,max}
后面不能跟+
(JS regex引擎不支持所有格量词)。即使删除加号并使用^(\.[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+$/"
仅允许包含非空整数部分的数字。看