Coder Social home page Coder Social logo

is-number's Introduction

is-number

Code Coverage Deno Doc

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

import { assertIsNumber, 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

assertIsNumber([123]); //=> throws
assertIsNumber({}); //=> throws
assertIsNumber(34); //=> doesn't throws
import { assertIsNumber, isNumber } from "@ultirequiem/is-number";

Browser

You can use any CDN ๐Ÿ”ฅ

Eg. ESM โ–ถ SkyPack / script tag โ–ถ JSDelivr.

The API is the same on all this platforms.

Documentation

Autogenerated Documentation

Includes TypeScript type guards, so using it will narrow the type of previously-unknown values.

export function isEven(n: unknown): boolean {
  n++ // Error, n is not a number

  assertIsNumber(n);

  return n % 2 === 0; // OK
}

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.

CLI Tool

Was done mainly as usage example.

Install

  • Node.js ๐Ÿฆ
npm install -g @ultirequiem/is-number
  • Deno ๐Ÿฆ•
deno install https://deno.land/x/is_number/is-number.ts

Usage

is-number 1 2 hey
true
true
false

Or with the verbose flag ๐Ÿ‘‡

is-number 1 2 hey --verbose
"1" is a number? true
"2" is a number? true
"hey" is a number? false

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 star the repo โญ

Versioning

We use SemVer for versioning. For the versions available, see the tags.

Authors

Eliaz Bobadilla (a.k.a UltiRequiem) - Creator and Maintainer ๐Ÿ’ช

See also the full list of contributors who participated in this project.

Licence

Licensed under the MIT License.

is-number's People

Contributors

ultirequiem avatar web-flow avatar foxieflakey avatar

Stargazers

Roman avatar Supachai Suwanthip avatar  avatar Access avatar Elias avatar Agomusa avatar Fish avatar ่—คๅŽŸ ๅƒ่Šฑ avatar

Watchers

 avatar  avatar

is-number's Issues

Add CLI tool

It should work like

is-number hey 123 jk9 # false true  false

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.