在jQuery中,有几种方式可以判断一个对象是否是数字,或者可否转换为数字。
首先,jQuery.isNaN()在最新版本中已经被移除了(1.7之后),取而代之的是 jQuery.isNumeric ()。这并不奇怪,因为jQuery.isNaN() 同Javascript内置的isNaN()名字相同,但是语义却不完全相同,在一定意义上会造成歧义。 jQuery.isNumeric ()有着与其相似的功能,同时也解决了歧义问题。
jQuery.isNumeric ()检查传进的参数是否是数字或者可否转换为数字;Javascript 内置的isNaN() 检查传进的参数是否是一个合法的数字,典型的例子是0/0。
具体区别可以看测试:
测试数据:
"-10",
,
xFF,
"0xFF",
"8e5",
.1415,
+10,
,
"",
{},
NaN,
null,
true,
Infinity,
undefined,
false
];
使用jQuery verision1.6:
var v = values[ index ];
$( 'table' ).append( '
+(!isNaN( v )?"true":"false")
+'
+(!$.isNaN( v )?"true":"false")
+'
}
输出:
|
!isNaN() |
!$.isNaN() |
-10 |
true |
true |
16 |
true |
true |
255 |
true |
true |
0xFF |
true |
true |
8e5 |
true |
true |
3.1415 |
true |
true |
10 |
true |
true |
100 |
true |
true |
|
true |
false |
[object Object] |
false |
false |
NaN |
false |
false |
null |
true |
false |
true |
true |
false |
Infinity |
true |
false |
undefined |
false |
false |
使用 jQuery version1.7
var v = values[ index ];
$( 'table' ).append( '
(!isNaN( v )?"true":"false")
'
($.isNumeric( v )?"true":"false")
'
}
输出:
|
!isNaN() |
$.isNumeric() |
||||||||||||||||||||||||||||||||||||||||||||||||
-10 |
true |
true |
||||||||||||||||||||||||||||||||||||||||||||||||
16 |
true |
true |
||||||||||||||||||||||||||||||||||||||||||||||||
255 |
true |
true |
||||||||||||||||||||||||||||||||||||||||||||||||
true |
true |
|||||||||||||||||||||||||||||||||||||||||||||||||
8e5 |
true |
true |
||||||||||||||||||||||||||||||||||||||||||||||||
3.1415 |
true |
true |
||||||||||||||||||||||||||||||||||||||||||||||||
10 |
true |
true |
||||||||||||||||||||||||||||||||||||||||||||||||
100 |
true |
true |
||||||||||||||||||||||||||||||||||||||||||||||||
|
true |
false |
||||||||||||||||||||||||||||||||||||||||||||||||
[object Object] |
false |
false |
||||||||||||||||||||||||||||||||||||||||||||||||
NaN |
false |
false |
||||||||||||||||||||||||||||||||||||||||||||||||
null |
true |
false |
||||||||||||||||||||||||||||||||||||||||||||||||
true |
true |
false |
||||||||||||||||||||||||||||||||||||||||||||||||
Infinity |
true |
false |
||||||||||||||||||||||||||||||||||||||||||||||||
undefined |
false |
false |