欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

js判断是否是数字——isNaN()函数

今天使用isNaN()函数判断是否是数字时遇到的问题,当变量是空串时,isNaN()的返回值还是false,但空串却不是数据,查了一下,才知道原来isNaN()把空串或空格作0处理的。

 

isNaN  返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。

  NaN 即 Not a Number
  isNaN(numValue)

  必选项 numvalue 参数为要检查是否为 NAN 的值。

  说明
  假如值是 NaN, 那么 isNaN 函数返回 true ,否则返回 false 。 使用这个函数的典型情况是检查 parseInt 和 parseFloat 方法的输入值。 
  还有一种办法,变量可以与它自身进行比较。 假如比较的结果不等,那么它就是 NaN 。 这是因为 NaN 是唯一与自身不等的值。 
  isNaN函数用法示例:比如我有一个textbox用于录入数字型的数据,在提交表单的时候我要验证该textbox中的值是否为数据,那么我们可以使用isNaN函数。
  function checkValue()
  {
  if(isNaN(document.all.textbox.value))
  {
  alert("请用数字录入!");
  return false;
  }
  }
  isNaN的典型使用是为parseInt和parseFloat方法的输入值进行一个提前的检验,但这种简单结果并不好。虽然可能有一些教课书上也这么说,甚至于错误地认为其是一个检查parseInt和parseFloat的返回值,这样都是错误的。
  parseInt与parseFloat是将一个字符型按数字进行一个转化。但自身还有错误处理的,如果你的输入值不是一个数字时,则parseInt和parseFloat返回一个消息:“is not number”,但一般的情况下我们都是对一个数字样式的字符串进行转换的,谁会无聊到转化非数字型的呢?所以你输入的参数是否合格,可以先进行一次isNaN检查的。
  但如果我们有意识的以下行为,事先是不能用isNaN进行检查的,数字开头中间含有字母时,如果用isNaN进行检查是通不过的。
  如果是一个空串或是一个空格,而isNaN是做为数字0进行处理的,而parseInt与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。

  两个函数是独立的,并不会谁为谁而生存,isNaN与parseInt/parseFloat并没有关系。
转自  http://hi.baidu.com/drtabc/item/6f57f495ba4491becc80e504
来自  http://blog.csdn.net/sanyuesan0000/article/details/36185033

NaN “Not a Number”。出现这个数值比较少见,以至于我们可以不理它。当运算无法返回正确的数值时,就会返回“NaN”值。NaN 值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至 NaN 本身也不等于 NaN 。

isNaN()

计算一个参数,检查它是否为数值。

 

核心函数
实现版本Navigator 2.0: 仅在 Unix上
Navigator 3.0, LiveWire 1.0: 所有平台

出现NaN一般是要显示的数据类型不是数字类型,如果出现NaN的情况,我们要再显示之前

对数据进行下处理,也就是转化成number类型;如果NaN的值在之前要用到其他的数据,

这些数据也必须是number类型。
一般用Number()函数转化下就能正常显示。
 

语法

isNaN(testValue)

参数

 

 

testValue你想要测试的值。

描述

isNaN() 是一个内建的 JavaScript 函数。它并不是与任何对象关联的方法,而仅仅是语言的一部分。

 

在支持 NaN 的平台上,parseFloat 和 parseInt 函数将在计算并不是数值的值时返回“NaN”。isNaN() 在传递过来的参数是“NaN”时返回真,否则返回假。

示例

下面的例子计算 floatValue,确定它是否为数值,以便调用相应的过程:

 

floatValue=parseFloat(toFloat)
if (isNaN(floatValue)) {
      notFloat()
} else {
      isFloat()

来自  http://blog.sina.com.cn/s/blog_726f57cd0100w045.html


定义和用法

isNaN() 函数用于检查其参数是否是非数字值。

语法

isNaN(x)
参数描述
x必需。要检测的值。

返回值

如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。

说明

isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。

如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。正因为如此,isNaN() 函数是必需的。

提示和注释

提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。

实例

检查数字是否非法:

<script>

document.write(isNaN(123));
document.write(isNaN(-1.23));
document.write(isNaN(5-2));
document.write(isNaN(0));
document.write(isNaN("Hello"));
document.write(isNaN("2005/12/12"));

</script>

输出:

false
false
false
false
true
true

来自 http://www.w3school.com.cn/jsref/jsref_isNaN.asp
普通分类: