javascript - 允许小数比的 ng-pattern

标签 javascript angularjs regex ng-pattern

我有一个 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/

相关文章:

javascript - 使用 RegExp 获取一系列前后可能有空格或没有空格的单词

Javascript匹配字符并在之间添加空格

python - 将一本书解析成章节——Python

javascript - 是否可以打开带有自定义标题和内容的新浏览器窗口?

javascript - 如何在字符串中添加 "00"并拆分 javascript 正则表达式中的值?

javascript - 如何更新多行字形的 ColumnDataSource 数据?

javascript - Angular js-model 中的 $watch 无法在 Controller 中访问

javascript - 为什么我的基于视口(viewport)的脚本不添加类

javascript - 使用 javascript 更改 Accept-Language header

angularjs - Angular 和 Express 路由如何在 mean.js 应用程序中协同工作?