Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用正负值验证texbox_Javascript_Angularjs_Regex_Validation - Fatal编程技术网

Javascript 如何使用正负值验证texbox

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"

我需要在文本框中输入加减值。我使用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" />

这个怎么样

<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+)?$/"
                     ^
图案细节

  • ^
    -字符串的开头
  • (0 |[+-][1-9])
    -a
    0
    +
    /
    -
    后接一个从
    1
    9
    范围的数字(因此,
    -
    +
    仅在
    1-9
    前面是必须的)(注意:如果使用
    [-+]?
    ,加号或减号将成为可选值,因为
    匹配1或0次)
  • \d*(\.\d+)
    -0+位(注意,模式中的
    +
    变为
    *
    ,因为第一位数字已与替换组一起使用),后跟可选的
    +1位或更多位序列
  • $
    -字符串结束

很高兴它对您有所帮助。数字必须以加号或减号输入。但是零可以不带+,-输入。先生,你能帮我吗?我的ng图案还可以。但问题是,用户不能在没有+,-符号的情况下输入“0”。请查收。当用户输入“0”时,它必须为true。(0应允许不带+或-)。谢谢/^[-+]\d+(\.\d+)$\^0/为什么您接受了一个无效的解决方案?看,如果你不想让用户输入前面有
+
-
0
,请使用。由于打字错误,我对解释做了一些修改。请参见“因此,
-
+
仅在
1-9
前面是必须的”(注意:如果使用
[-+]?
,则加号或减号将变为可选,因为
匹配1或0次出现)