我只在Firefox的JavaScript控制台中尝试过,但以下语句都没有返回true:
parseFloat('geoff') == NaN;
parseFloat('geoff') == Number.NaN;
我只在Firefox的JavaScript控制台中尝试过,但以下语句都没有返回true:
parseFloat('geoff') == NaN;
parseFloat('geoff') == Number.NaN;
当前回答
alert("1234567890.".indexOf(String.fromCharCode(mycharacter))>-1);
这并不优雅。但在尝试isNAN()后,我得到了这个解决方案,这是另一种选择。在这个例子中,我还允许'。'因为我正在为浮动进行屏蔽。您还可以反转此操作,以确保不使用任何数字。
("1234567890".indexOf(String.fromCharCode(mycharacter))==-1)
这是一个单个字符的求值,但您也可以循环遍历字符串以检查任何数字。
其他回答
我使用下划线的isNaN函数,因为在JavaScript中:
isNaN(undefined)
-> true
至少,要意识到这一点。
你应该使用全局isNaN(value)函数调用,因为:
支持跨浏览器 有关文档,请参阅isNaN
例子:
isNaN('geoff'); // true
isNaN('3'); // false
我希望这对你有所帮助。
简单地将结果转换为String并与'NaN'进行比较。
var val = Number("test");
if(String(val) === 'NaN') {
console.log("true");
}
是(NaN >= 0) ?......“我不知道”。
function IsNotNumber( i ){
if( i >= 0 ){ return false; }
if( i <= 0 ){ return false; }
return true;
}
条件仅在TRUE时执行。
不是假的。
不是"我不知道"
只要要测试类型为Number的值是否为NaN,全局函数isNaN将完成工作
isNaN(any-Number);
对于适用于JS中所有类型的通用方法,我们可以使用以下任何一种方法:
ECMAScript-5用户:
#1
if(x !== x) {
console.info('x is NaN.');
}
else {
console.info('x is NOT a NaN.');
}
对于使用ECMAScript-6的人:
#2
Number.isNaN(x);
为了在ECMAScript 5和6中保持一致性,我们也可以为Number.isNan使用这个填充
#3
//Polyfill from MDN
Number.isNaN = Number.isNaN || function(value) {
return typeof value === "number" && isNaN(value);
}
// Or
Number.isNaN = Number.isNaN || function(value) {
return value !== value;
}
请查看这个答案了解更多细节。