【问题标题】:AngularJS input to accept integers and special charactersAngularJS 输入接受整数和特殊字符
【发布时间】:2016-05-11 04:08:22
【问题描述】:
<input type="text" ng-pattern="/^[0-9]*$/" id="players" name="players" ng-model="team.players"/>

我希望上述输入接受整数以及以下特殊字符。 . + -

如何用最少的代码过滤这个?

我尝试了一些在 Internet 上找到的示例,但它们都没有正常工作。

注意:我的目标是接受整数值(以及上面提到的特殊字符),但不接受小数。

【问题讨论】:

  • 试试这个 ng-pattern="/^\d+$/" type="number"
  • 仍然可以输入. 我只是想阻止数字字符。但不知何故,正则表达式没有过滤字母数字。
  • 您可以输入这些字符,但您的模型无效
  • 没错。我想知道&lt;input type="number" 是否会阻止字母,那么有一种方法可以阻止字母数字。我想atm我只会写js代码来屏蔽keyCode。
  • 我无法测试,但也许这种模式(或类似的模式)会更好:^[^.][0-9]*$

标签: javascript angularjs regex html


【解决方案1】:

假设要接受以下数字,它们都是整数:37-10-09+237.7.000

以下正则表达式:

^[+\-]?[0-9]+(\.0*)?$

将接受一个可选的前导符号、一个或多个数字,以及一个可选的小数点,后面只有零。它会故意不接受小数点前没有任何数字的数字,例如.00。正则表达式使用^$ 锚定,以确保整个字符串匹配。

根据正则表达式方言,您可能需要引用更多或更少的字符。

【讨论】:

    【解决方案2】:

    我尝试了正则表达式,但没有成功。 我最终得到了下面的代码,

    $scope.reg.players=parseInt($scope.reg.players)
    

    所以当用户输入1.2 时,它将转换为1。 如果用户输入1. 则打印无效输入错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多