我需要在文本框中输入加减值。我使用 Angular js 进行了下面的验证。 但当用户输入零时,用户可以不输入加号或减号。 在我的解决方案中,用户无法在没有加号或减号的情况下输入零。 如何允许在没有加号或减号的情况下输入零。
<input name="temperature" type="text" class="form-control" ng-maxlength="3"
ng-model="eletctyDetail.temperatureValue" ng-required="true"
ng-pattern="/^[-+]\d+(\.\d+)?$/" ng-pattern-err-type="tempPattern" />
最佳答案
您的模式 - /^[-+]\d+(\.\d+)?$/
- 匹配-
或+
必须处于起始位置。然后,\d+
匹配任何一个或多个数字。
现在,您只需要匹配 0
或+/-
后跟 1
中的任意数字至9
其后的范围。这就是你需要使用交替的地方: (0|[-+][1-9])
.
整个正则表达式看起来像
ng-pattern="/^(0|[+-][1-9])\d*(\.\d+)?$/"
请参阅regex demo .
如果您需要制作-
/+
可选使用
ng-pattern="/^(0|[+-]?[1-9])\d*(\.\d+)?$/"
^
图案详细信息:
-
^
- 字符串开头 -
(0|[+-][1-9])
- 一个0
或+
/-
后跟1
中的数字至9
范围(因此,-
或+
仅在1-9
前面是必需的)(注意:如果您使用[-+]?
,则加号或减号将变为可选,因为?
匹配 1 或 0 次出现)< -
\d*(\.\d+)?
- 0+ 位数字(请注意,模式中的+
变为*
,因为第一个数字已被交替组消耗),后跟可选的.
序列+ 1 位或更多数字 -
$
- 字符串结尾。
关于javascript - 如何使用加减值验证文本框 angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43624593/