不是角度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;
}
});
为什么,当我进入串stackoverflow
我不是在输出接收'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;
}
答
的问题是在if语句,以前typeof
运营商申请parseFloat,所以更换:
typeof ($scope.test) !== 'number'
要:
(typeof (parseFloat($scope.test)) !== 'number')
+0
请帮我.. –
+0
谢谢大家对我的帮助 –
我修饰我的代码与您的代码,但我避风港” t任何结果,当我输入一个数字值,我还没有任何结果 –
okey现在当我输入一个数字值我有消息无效的saisie :( –
请帮我.. 。 –