寻找正则表达式以匹配 ng 模式中的特定十进制格式

looking for a regular expression to match specific decimal format in ng-pattern

本文关键字:十进制 格式 模式 正则表达式 ng 寻找      更新时间:2023-09-26

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

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

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

我想出了

'd{1}'.{1}'d{2}?

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

2.22
3.12
0.34

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

如果你想要这个内容而不是别的,你应该使用单词的开头(^)和单词的结尾($)锚点。 您的正则表达式将是:

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

在正则表达式101上测试

根据ng-pattern文档

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

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

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

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

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

'b'd'.'d{2}'b

正则表达式演示