寻找正则表达式以匹配ng-pattern中的特定小数格式

时间:2016-01-21 20:06:12

标签: javascript angularjs regex angularjs-ng-pattern

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

我正在寻找一个只满足特定小数模式的表达式,即

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

我想出了

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

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

2.22
3.12
0.34

这很好,但如果用户输入12.12,它就不会拒绝这一点,因为我需要它。

2 个答案:

答案 0 :(得分:1)

  

正好一位数 - >比小数 - >正好2位数

使用字边界来防止它与任何一方的不需要的文字相匹配:

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

RegEx Demo

答案 1 :(得分:1)

如果您想要精确地显示此内容而不是其他内容,则应使用单词(^)的开头和单词($)锚点的结尾。你的正则表达式是:

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

Tested on regex101

根据ng-pattern documentation

  

如果表达式求值为RegExp对象,则直接使用它。如果表达式求值为一个字符串,那么在将其包装成^$字符后,它将转换为RegExp。例如,"abc"将转换为new RegExp('^abc$')

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

<input ng-model="yourModel" ng-pattern="\\d\\.\\d{2}" >