判断是不是整数,你还在写正则吗?那你过时了

108 阅读1分钟

再平常的开发中,经常涉及到输入框的限制,一般的、常用的还好,要是遇到一些复杂的,像我这种正则不行的每次都要扣脑壳 0.0

今天介绍一个省事的 API,后面大家遇到 判断是不是为整数 这种需求的时候,就简直是手拿把掐 !!!

Number.isInteger()

没错,就是这个方法,这是 ES6 的新特性,语法也很简单

Number.isInteger(value)

参数:value

返回值:一个 Boolean

是不是很简单? 举个例子: image.png

兼容性

兼容性也不错(除了 IE ) image.png

哦,顺便提一下这个查兼容性的网站,有些小伙伴还真不知道

caniuse.com/?search=isI…

手写实现

IE不行,那肯定有小伙伴还得抠脑壳,就手写一个吧。思路也比较简单,总得是一个数字吧,然后要是一个合法的数字吧,然后再使用 Math.floor 向下取整后判断它等不等于自身就完事了

function myIsInteger(value) {
    return typeof value === "number" &&
        isFinite(value) &&
        Math.floor(value) === value;
};

拓展: isFinite:函数可确定数字是否是有限的合法数字,也返回一个布尔值