【问题标题】:how to check input value has only numbers in angular?如何检查输入值只有角度数字?
【发布时间】:2015-09-23 09:56:23
【问题描述】:

我想比较用户在输入字段中输入的字段 centerCode 的值。然后我想检查它是否是一个数字并相应地显示适当的警报。我无法将值或变量编号与变量代码进行比较。

 var numbers =/^[0-9]+$/;
 var code = $scope.Nuser.centerCode;
 alert(code);
 if(code.val(numbers))
 {
     alert(code.val(numbers));
 }
 else
 {
     alert("enter numbers only");
 }

【问题讨论】:

  • 您是否可以使用输入数字而不是输入字段?可能会更容易
  • 我同意@Apédémak,使用输入数字会容易得多。但是,如果您真的想这样做,您可以循环检查字符串是否包含数字 0-9。
  • 代替 code.val(numbers) 尝试 new RegExp(numbers).test(code)
  • 您可以限制用户提供适当的值,而不是检查。检查这个小尺寸插件,它将帮助您解决问题.. github.com/Jeevanandanj/angular-input-decimal-separator

标签: javascript regex angularjs validation


【解决方案1】:

你是正确的。数字需要是一个正则表达式,你需要使用test 函数来检查输入。如果字符串全是数字,test 函数将返回 true,如果其中还有其他内容,则返回 false。

var numbers = new RegExp(/^[0-9]+$/);
var code = $scope.Nuser.centerCode;

if(numbers.test(code))
{
    alert('code is numbers');
}
else
{
    alert("enter numbers only");
}

【讨论】:

    【解决方案2】:

    我建议你改用 ng-pattern 。类似于以下内容:

    <input type="text" ng-pattern="/^[0-9]{1,7}$/" ng-model="inputNumber"/>
    

    它只允许用户输入数字。

    您可以使用angular.isNumber 来检查输入的值是否为数字。尝试以下方法:

    if(angular.isNumber($scope.Nuser.centerCode)){
       alert('Center Code is a number');
    }else {
       alert('Center Code is not a number');
    }
    

    希望这能解决问题。

    【讨论】:

    • 感谢 vaibhav,但在我的情况下,用户应该能够输入值,如果他没有输入数字,我想显示一个警报,纽约感谢您的回答,但要求是 lil bit这里不一样
    【解决方案3】:

    您可以简单地将字符串转换为数字并测试它是NaN(不是数字)

    isNaN(+$scope.Nuser.centerCode)
    

    如果是false,则表示您的 centerCode 仅包含数字

    【讨论】:

      【解决方案4】:

      试试这个希望这是你要找的

       if(angular.isNumber(value))
             { 
              //your code here 
             }
      

      【讨论】:

        猜你喜欢
        • 2019-05-04
        • 2016-11-19
        • 2023-01-13
        • 2012-08-23
        • 1970-01-01
        • 2022-11-11
        • 1970-01-01
        • 2019-03-18
        • 1970-01-01
        相关资源
        最近更新 更多