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

原创 2014年07月01日 14:03:16

今天使用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


Matlab 中的 isnan 函数

在使用Matlab做仿真的时候难免会出现数据不是数字的情况,就是NaN的情况,这些数据是不能使用的。那么怎么去除这些数据呢?isnan函数帮你搞定。   [功能描述]           判断数...
  • u011171235
  • u011171235
  • 2016年04月13日 17:48
  • 2058

用isNaN函数判断是否是Number中的坑

isNaN主要作用是判断是否是NaN,反过来却不一定是Number,而是可以转为Number的一切类型 ExamplesEDIT isNaN(NaN); // true isNaN(un...
  • qfgg3
  • qfgg3
  • 2016年06月28日 09:17
  • 1416

iOS的isnan函数

如果一个数是一个确定的数,那它就不是nan值 如果一个数是无穷大,无穷小,那它就是nan值 我试着打印了以下的值是不是nan值 if (isnan(1)) {         DLog(@...
  • u011597585
  • u011597585
  • 2015年08月24日 20:19
  • 2889

isNaN()内置函数的用法

Write By Monkeyfly 以下内容均为原创,如需转载请注明出处。 前提 在上篇博文《JavaScript基础教程之函数的重新学习》中提到了isNaN()方法,但当时由于时间和篇幅...
  • tel13259437538
  • tel13259437538
  • 2018年01月08日 20:06
  • 123

isnan isinf

在linux下有两个函数 isnan(x) isinf(x) 对应在windows下的函数: _isnan(x) !_finite(x) 为了跨平台,要么用boos...
  • sunmenggmail
  • sunmenggmail
  • 2012年08月10日 20:31
  • 8415

JavaScript—特殊数值:NaN和isNaN()方法

NaNNaN是number类型中一个特殊的数值,在JavaScript中它有个奇怪的定义:非数值(Not a Number),即是一个不是数字的数值,这个数值用于表示一个本来要返回数值的操作数未返回数...
  • a895865025
  • a895865025
  • 2017年03月18日 00:11
  • 1158

javascript NaN和isNaN的理解

NaN(Not a Number) 是一个全局对象的属性,它表示未定义或不可表示的值,在编程中很少直接使用到 NaN,当算术运算返回一个未定义的或无法表示的值时,NaN就产生了。但是,NaN并不一定用...
  • joyfixing
  • joyfixing
  • 2016年10月25日 11:58
  • 1566

几种检验数字的方法区别 isNaN、isFinite

isNaN(): 首先认识NaN   , NaN是IEEE 754定义的一个特殊数值。它不表示一个数字。尽管下面的表达式返回的是true typeof NaN ==='number' ;/...
  • btshjhewei
  • btshjhewei
  • 2015年12月08日 12:38
  • 3458

isNaN解盲

因为以前felx组件默认是-99999999,后来因为方便组件和数据库的操作,就统一修改Number类型的数据为NAN类型了,然后通过isNaN去判断,而然很多表达式是返回字符串的或者null,要注意...
  • john2522
  • john2522
  • 2012年02月13日 10:45
  • 5245

js中利用isNaN函数判断用户输入是否为数字

上菜: function fun() { var x = document.getElementById("xxx").value; if("" == x || isNaN(x)) ...
  • stpeace
  • stpeace
  • 2014年05月25日 17:17
  • 6689
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js判断是否是数字——isNaN()函数
举报原因:
原因补充:

(最多只允许输入30个字)