Javascript 如何使用正负值验证texbox
我需要在文本框中输入加减值。我使用angular js进行了以下验证。 但当用户输入零时,用户可以不带加号或减号地输入它。 在我的解决方案中,用户不能在没有加号或减号的情况下输入零。 如何允许键入零而不带加号或减号Javascript 如何使用正负值验证texbox,javascript,angularjs,regex,validation,Javascript,Angularjs,Regex,Validation,我需要在文本框中输入加减值。我使用angular js进行了以下验证。 但当用户输入零时,用户可以不带加号或减号地输入它。 在我的解决方案中,用户不能在没有加号或减号的情况下输入零。 如何允许键入零而不带加号或减号 <input name="temperature" type="text" class="form-control" ng-maxlength="3" ng-model="eletctyDetail.temperatureValue" ng-required="true"
<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" />
这个怎么样
<input name="temperature" type="text" class="form-control" ng-maxlength="3"
ng-model="eletctyDetail.temperatureValue" ng-required="true"
ng-pattern="^[-+]?[0-9]*\.?[0-9]+$" ng-pattern-err-type="tempPattern" />
您的模式-
/^[-+]\d+(\.\d+)$/
-强制匹配起始位置的-
或+
。然后,\d+
匹配任何一个或多个数字
现在,您只需要匹配0
或+/-
,后跟1
到9
范围内的任何数字。这就是您需要使用替换的地方:(0 |[-+][1-9])
整个正则表达式看起来像
ng-pattern="/^(0|[+-][1-9])\d*(\.\d+)?$/"
看
如果需要使-
/+
可选,请使用
ng-pattern="/^(0|[+-]?[1-9])\d*(\.\d+)?$/"
^
图案细节:
-字符串的开头^
-a(0 |[+-][1-9])
或0
/+
后接一个从-
到1
范围的数字(因此,9
或-
仅在+
前面是必须的)(注意:如果使用1-9
,加号或减号将成为可选值,因为[-+]?
匹配1或0次)?
-0+位(注意,模式中的\d*(\.\d+)
变为+
,因为第一位数字已与替换组一起使用),后跟可选的*
+1位或更多位序列
-字符串结束$
+
或-
的0
,请使用。由于打字错误,我对解释做了一些修改。请参见“因此,-
或+
仅在1-9
前面是必须的”(注意:如果使用[-+]?
,则加号或减号将变为可选,因为?
匹配1或0次出现)