js判断类型为数字的方法实现总汇——原生js判断isNumber()

方法一【推荐】:

最容易想到的是用typeof来判断是否是number类型 ,但是如果为NaN会被认为也是number类型,因此我们需要使用isNaN来排除NaN的情况。

function isNumber(obj) {
    return typeof obj === ‘number‘ && !isNaN(obj)
}

方法二:

isNaN(obj)   等价于isFinite()。Infinity在js表示数字的无穷大,判断是否可用做数字的最佳方法则是isFinite(),因为该方法会筛除掉NaN和Infinity两个关键字。

function isNumber(obj) {
    return typeof obj === ‘number‘ && isFinite(obj)
}

方法三:

不使用typeof,可以用Object.prototype.toString来实现,只是代码量稍微比较大而已。

function isNumber(obj) {
    return Object.prototype.toString.call(obj) === ‘[object Number]‘ && !isNaN(obj)
}

  或者

function isNumber(obj) {
    return Object.prototype.toString.call(obj) === ‘[object Number]‘ &&  isFinite(obj)
}

  

方法四:

据说这个方法是世界上最短的数字判断代码

function isNumber(obj) {
    return obj === +obj
}

下面是该方法的延伸。

1、判断字符串 :

function isString(obj) {
    return obj === obj+‘‘
}

2、判断布尔类型

function isBoolean(obj) {
    return obj === !!obj
}

 

方法五【推荐】

使用正则来实现,这也是我们最常用的方式

function isNumber(obj) {
  var reg = /^[0-9]+.?[0-9]*$/;
  if (reg.test(obj)) {
    return true;
  }
  return false;
} 

引用:http://www.fly63.com/article/detial/812

原文地址:https://www.cnblogs.com/alexandra/p/10265726.html

时间: 2025-01-05 19:54:26

js判断类型为数字的方法实现总汇——原生js判断isNumber()的相关文章

animate动画方法封装:原生JS实现

1 /** 2 * Created by guoyongfeng on 2014/7/7. 3 * @Author guoyongfeng 4 * @Date 2014-07-07 5 * @Version 1.0.0 6 * @update 2014-07-07 7 * @described tween动画库函数封装 8 * 9 */ 10 define('animate/0.0.1', function(){ 11 /** 12 * 13 */ 14 return function(ele,

判断字符串是不是数字的方法

判断字符串是不是数字? 方法一: /** * 用于验证获取的字符串是不是数字 * @param str * @return */ public static boolean isNumeric(String str) { for (int i = 0; i < str.length(); i++) { // 验证字符串中的字符是不是数字 if (!Character.isDigit(str.charAt(i))) { return false; } } return true; } 方法二: /

利用”+“、”-“JS字符串类型与数字类型转换

今天在慕课网上突然看到可以使用+/-来对字符串以及数字类型进行转换觉得很有意思就记录一下. 由于javascript属于弱类型语言,除了使用方法parse...我们还可以使用弱类型转换的特点对字符串以及数字类型进行转换. var a=“123”; var b=a-0 ; //b 即为123数字 var c=b+" "; //c 即为”123“字符串

jQuery 判断是否为数字的方法

<script language="javascript"> var t=$("#id").val();//这个就是我们要判断的值了 if(!isNaN(t)){ alert("是数字"); }else{ alert("不全是数字"); } </script>

js实现轮播图效果(附源码)--原生js的应用

1.js实现轮播图效果 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="Author" content="奇客艺术"> <meta name="keyword" content="关键字"> <meta name=

关于C#判断是否是数字的正则式

有话要说 今天我同事突然让我帮他看个问题,他说想不通为什么数据库中会有不合法的内容,我都已经用正则过滤了,并且在本地调通了的! 我问他是不是你正则有问题,他说没问题啊,前端和后端的正则是一样的,前端我测了的确是可以过滤的!我帮他查看了正则式的确都是一样的,并且在生产环境中的确也是有过滤作用的!但的确数据库中有不合法的内容(至于是什么内容,咱们往下看 ^-^) 判断目标内容是否为数字 我们来说说,判断是否为数字的正则式,或者说判断手机号码的合法性,下面直接给出网上的一段代码(还是有很多同学都用到了

原生js封装的一些jquery方法

用js封装一些常用的jquery方法 记录一下 hasClass:判断是否有class function hasClass(ele, cls) { if (!ele || !cls) return false; if (ele.classList) { return ele.classList.contains(cls); } else { return ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); }} addCla

原生JS添加节点方法与JQuery添加节点方法的比较及总结

一.首先构建一个简单布局,来供下边讲解使用 1.HTML部分代码: <div id="div1">div1</div> <div id="div2">div2 <span id="span1">span1</span> <span id="span2">span2</span> </div> <div id="div

放弃jQuery,使用原生js吧!

转自:http://itakeo.com/blog/2015/07/28/nojq/ 随着IE6.7.8的逐渐淘汰,HTML5的兴起,以及侧重点放在了移动端,jQuery可能变的不在那么重要,原生一样很好用.下面介绍几个原生替换jq的方法. 获取元素 JQuery $('.xxx'); //class获取 $('#xxx'); //id获取 $('.xxx.ccc'); //同时包含xxx和ccc $('.xxx,.zzz'); //多选 $('.xxx div'); //子类 $('.xxx