1

我正在寻找一个正则表达式来放入角度的 ng-pattern 属性。

我正在寻找一个只满足特定十进制模式的表达式,即

exactly one digit --> than a decimal --> exactly 2 digits 

我想出了

\d{1}\.{1}\d{2}?

上述模式正确匹配以下数字。

2.22
3.12
0.34

这很好,但如果用户输入12.12它不会像我需要的那样拒绝它。

4

2 回答 2

1

正好一位数 --> 比小数点 --> 正好两位数

使用单词边界来防止它匹配两边不需要的文本:

\b\d\.\d{2}\b

正则表达式演示

于 2016-01-21T20:08:00.813 回答
1

如果您只想要此内容而不是其他任何内容,则应使用词首 ( ^) 和词尾 ( $) 锚点。您的正则表达式将是:

var regex = /^\d\.\d{2}$/;         //then just bind to controller

在 regex101 上测试

根据ng-pattern文档

如果表达式的计算结果为 RegExp 对象,则直接使用 this。^如果表达式的计算结果为字符串,则在将其包装在和$字符中后,它将被转换为正则表达式。例如,"abc"将转换为new RegExp('^abc$').

请注意,如果您使用字符串输入,则必须转义反斜杠以获得正确的正则表达式字符串。在这种情况下,您可以使用

<input ng-model="yourModel" ng-pattern="\\d\\.\\d{2}" >
于 2016-01-21T20:12:45.803 回答