javascript - 如何使用加减值验证文本框 angularjs

标签 javascript angularjs regex validation

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

相关文章:

javascript - JavaScript 函数对象与 Scala 函数对象有何不同?

javascript - ssl 版本或密码不匹配 ExpressJS

javascript - 如何处理 Angular 中对象属性的变化?

angularjs - 在angularjs中将生日转换为年龄

javascript - 如何使文本在移动时跟随这个方 block ?

java - 仅当字符未直接包含在所需字符串之前时,正则表达式才匹配

regex - 仅用 sed 替换与正则表达式匹配的第一次出现

javascript - 匹配子目录

javascript - 避免 Math.random 中先前数字的简单方法?

regex - 如何用@ 替换 'at'