一尘不染

为什么angular.isNumber()无法正常工作?

angularjs

看来AngularJS的angular.isNumber不起作用。它不适用于数字字符串。难道我做错了什么?我应该使用isNaN()吗?

angular.isNumber('95.55') == false
angular.isNumber('95.55' * 1) == true
angular.isNumber('bla' * 1) == true
angular.isNumber(NaN) == true

我需要一些东西来查看字符串是否是一个数字(实际上是一个数字)angular.isNumber(),除非我乘以1,否则我不会这么做,但是如果我这样做,那么它将始终为真。另外NaN是不是一个数字(定义)等应该返回false。


阅读 327

收藏
2020-07-04

共1个答案

一尘不染

JavaScript中typeof NaN === 'number'

例如,如果需要将 字符串 识别为 Number ,则将其转换为 Number ,然后转换回 String 并将其与输入进行比较。

function stringIsNumber(s) {
    var x = +s; // made cast obvious for demonstration
    return x.toString() === s;
}

stringIsNumber('95.55'); // true
stringIsNumber('foo'); // false
// still have
stringIsNumber('NaN'); // true
2020-07-04