is-number

CI Code Coverage Deno Doc

Custom badge

In JavaScript, it's not always as straightforward as it should be to reliably check if a value is a number. It's common for devs to use +, -, or Number() to cast a string value to a number (for example, when values are returned from user input, regex matches, parsers, etc). But there are many non-intuitive edge cases that yield unexpected results:

console.log(+[]); //=> 0
console.log(+""); //=> 0
console.log(+"   "); //=> 0
console.log(typeof NaN); //=> 'number'

Usage

Deno ๐Ÿฆ•

import { isNumber } from "https://deno.land/x/is_number/mod.ts";

isNumber("hello")); //=> false
isNumber("678")); //=> true
isNumber({}) //=> false
isNumber(+{a:"34"}) //=> false
isNumber(345)); //=> true

Node.js ๐Ÿข

import { isNumber } from "@ultirequiem/is-number";

Browser

Using type module ๐Ÿฑ

Using a plain script tag ๐Ÿ‘‡

You have the same API on all of this platforms.

Documentation

Autogenerated Documentation

True Cases

isNumber(5e3);
isNumber(0xff);
isNumber(-1.1);
isNumber(0);
isNumber(1);
isNumber(1.1);
isNumber(10);
isNumber(10.1);
isNumber(100);
isNumber("-1.1");
isNumber("0");
isNumber("012");
isNumber("0xff");
isNumber("1");
isNumber("1.1");
isNumber("10");
isNumber("10.10");
isNumber("100");
isNumber("5e3");
isNumber(parseInt("012"));
isNumber(parseFloat("012"));

False cases

Everything else is false.

isNumber(Infinity);
isNumber(NaN);
isNumber(null);
isNumber(undefined);
isNumber("");
isNumber("   ");
isNumber("foo");
isNumber([1]);
isNumber([]);
isNumber(function () {});
isNumber({});

See the tests for more examples.

Support

Open an Issue, I will check it a soon as possible ๐Ÿ‘€

If you want to hurry me up a bit send me a tweet ๐Ÿ˜†

Consider supporting me on Patreon if you like my work ๐Ÿš€

Don't forget to start the repo โญ

Licence

Licensed under the MIT License.