如何检查值是否为数字

uzh*_*has 13 angularjs

我有这个功能:

 $scope.SearchTicketEvent = function (ticketPinOrEvent)
            {
                if (ticketPinOrEvent != undefined)
                {

                 if (ticketPinOrEvent.length == 10)
                    {

                     $scope.PinTicketSearch(ticketPinOrEvent);

                    }
                }


            }
Run Code Online (Sandbox Code Playgroud)

如何检查ticketPinOrEvent是否为数字?我尝试过,angular.isNumber(ticketPinOrEvent)但我没有得到任何东西?

dha*_*ngg 40

如果要使用angular.isNumber

    if ( !isNaN(ticketPinOrEvent) && angular.isNumber(+ticketPinOrEvent)) {
    }
Run Code Online (Sandbox Code Playgroud)

  • 您必须使用某些文本框或其他内容从视图中获取此值...对于文本框,这始终是一个字符串..您需要在将字符串传递给angular.isNumber方法之前将其转换为数字.+是重载运算符,将任何值转换为数字. (3认同)

End*_*imo 6

typeof如果变量是数字,您可以使用它来测试.

if (typeof ticketPinOrEvent === 'number') {
    $scope.PinTicketSearch(ticketPinOrEvent);
}
Run Code Online (Sandbox Code Playgroud)

或者可以试试这个:

if (!isNaN(ticketPinOrEvent) && angular.isNumber(ticketPinOrEvent)) {
    $scope.PinTicketSearch(ticketPinOrEvent);
}
Run Code Online (Sandbox Code Playgroud)

针对NaN的测试:

NaN比较不等于(via ==, !=, ===, and !==)任何其他值 - 包括另一个NaN值.使用Number.isNaN()isNaN()最清楚地确定值是否为NaN.或者进行自我比较:NaN,只有NaN,将比较不等于自身.


Mar*_*miK 5

在Angular 6中,无需任何前缀即可使用。

例:

if(isNumber(this.YourVariable)){
    // your Code if number
}
else {
    // Your code if not number
}
Run Code Online (Sandbox Code Playgroud)