不是角度js中的数字

问题描述:

我创建此代码来检查值是否为数字,但似乎不起作用。不是角度js中的数字

app.controller('ForCtrl', function($scope) { 
    $scope.calcul_factorielle = function() { 

     var mm = 1; 
     if ((typeof ($scope.test) !== 'number')) $scope.factorielle = " invalide saisie"; 

     for(i=2;i<=$scope.test;i++) { 
      mm = mm * i; 
     } 
     $scope.factorielle = mm; 
    } 
}); 

为什么,当我进入串*我不是在输出接收'invalide saisie'消息?

在此if声明之后,如果您的文本不是数字,则需要使用关键字return中断该函数的执行。在你的情况下,代码在if声明后继续,所以你得到了错误的结果。

首先,您需要将其解析为number,因为每个输入都是string,然后尝试使用isNaN()函数。如果字符串不能被解析到number它将返回一个NaN

var number = Number.parseInt($scope.test); 
if (isNaN(number)) { // or i 
     $scope.factorielle = " invalide saisie"; 
     return; 
} 
+0

我修饰我的代码与您的代码,但我避风港” t任何结果,当我输入一个数字值,我还没有任何结果 –

+0

okey现在当我输入一个数字值我有消息无效的saisie :( –

+0

请帮我.. 。 –

的问题是在if语句,以前typeof运营商申请parseFloat,所以更换:

typeof ($scope.test) !== 'number' 

要:

(typeof (parseFloat($scope.test)) !== 'number') 
+0

请帮我.. –

+0

谢谢大家对我的帮助 –