0

我想这样做:3.40,不超过 3 个字符和一个点:

<md-input-container class="md-block">
                    <label>Marks/CGPA</label>
                    <input type="text" name="education.cgpa" ng-model="education.cgpa"
                           ng-pattern="/^[0-9]{0,4}$/">
                    <div class="input-validation" ng-show="educationSaveForValidate['education.cgpa'].$error.pattern">
                        Insert valid CGPA
                    </div>
                </md-input-container>

如何在正则表达式中只允许 3 位数字和 1 个点?

4

3 回答 3

3

您可以使用单个正则表达式,例如

ng-pattern="/^(?!.{5})\d*\.?\d+$/"

或 - 允许空字符串:

ng-pattern="/^(?!.{5})\d*\.?\d*$/"

您还可以将长度检查移出正则表达式:

ng-pattern="/^\d*\.\d*$/" ng-maxlength="4"

细节

  • ^- 字符串的开始
  • (?!.{5})- 如果输入字符串中有任何 5 个字符,则匹配失败的负前瞻
  • \d*- 0+ 位数
  • \.?- 一个可选的.
  • \d*- 零个或多个数字(如果\d+使用,则为1 个或多个数字)
  • $- 字符串结束。

要禁止任何前导/尾随空格,请添加ng-trim="false".

于 2017-07-31T11:18:16.640 回答
0

https://regex101.com/r/kF0hJ5/17

检查上面的这个链接,我希望它会帮助你。抱歉在这里评论链接。这样做是因为我有更少的回购。

于 2017-07-31T11:35:17.703 回答
0

我已经通过这种方式解决了我的问题......

ng-pattern="/^\d\.\d{0,2}$/"
于 2017-07-31T11:37:49.467 回答