【问题标题】:ng-pattern that allows decimal ratios允许十进制比率的 ng 模式
【发布时间】:2016-12-30 11:21:25
【问题描述】:

我有一个ng-pattern,它可以验证如下所示的 4:6 配给:

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

我还想验证十进制数字是否与上述验证一起作为口粮输入。示例:5.4:7.1 我尝试将ng-pattern 设为

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

但没有触发验证。请建议我哪里出错了..

【问题讨论】:

    标签: javascript angularjs regex ng-pattern


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-06-27
      • 2012-09-05
      • 2019-04-22
      • 1970-01-01
      • 2021-04-19
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多