What is is?
The 'is' npm package provides a set of utility functions for type checking and validation. It allows developers to easily determine the type of a variable, check for specific conditions, and validate data types.
What are is's main functionalities?
Type Checking
The 'is' package provides functions to check the type of a variable. For example, 'is.string' checks if a value is a string, 'is.number' checks if a value is a number, and 'is.array' checks if a value is an array.
const is = require('is');
console.log(is.string('hello')); // true
console.log(is.number(123)); // true
console.log(is.array([1, 2, 3])); // true
Existence Checks
The 'is' package includes functions to check for the existence and truthiness of values. 'is.empty' checks if a value is empty, 'is.existy' checks if a value exists (is not null or undefined), and 'is.truthy' checks if a value is truthy.
const is = require('is');
console.log(is.empty([])); // true
console.log(is.existy(null)); // false
console.log(is.truthy(1)); // true
Regex and String Checks
The 'is' package provides functions to validate strings against common patterns. For example, 'is.email' checks if a string is a valid email address, 'is.url' checks if a string is a valid URL, and 'is.creditCard' checks if a string is a valid credit card number.
const is = require('is');
console.log(is.email('test@example.com')); // true
console.log(is.url('https://www.example.com')); // true
console.log(is.creditCard('4111111111111111')); // true
Other packages similar to is
lodash
Lodash is a modern JavaScript utility library that provides a wide range of functions for common programming tasks, including type checking and validation. It offers similar functionality to 'is' but with a broader scope and additional utilities for working with arrays, objects, and more.
validator
Validator is a library for string validation and sanitization. It provides a comprehensive set of functions for validating and sanitizing strings, including checks for email addresses, URLs, and credit card numbers. It is more focused on string validation compared to 'is'.
type-detect
Type-detect is a library for type detection in JavaScript. It provides functions to determine the type of a variable, similar to the type checking features of 'is'. It is a lightweight alternative focused specifically on type detection.
is
The definitive JavaScript type testing library
To be or not to be? This is the library!
Installation
As a node.js module
$ npm install is
As a component
$ component install enricomarino/is
API
general
- is.a (value, type) or is.type (value, type)
- is.defined (value)
- is.empty (value)
- is.equal (value, other)
- is.hosted (value, host)
- is.instance (value, constructor)
- is.instanceof (value, constructor) - deprecated, because in ES3 browsers, "instanceof" is a reserved word
- is.null (value) - deprecated, because in ES3 browsers, "null" is a reserved word
- is.undef (value)
- is.undefined (value) - deprecated, because in ES3 browsers, "undefined" is a reserved word
arguments
- is.args (value)
- is.arguments (value) - deprecated, because "arguments" is a reserved word
- is.args.empty (value)
array
- is.array (value)
- is.array.empty (value)
- is.arraylike (value)
boolean
- is.boolean (value)
- is.false (value) - deprecated, because in ES3 browsers, "false" is a reserved word
- is.true (value) - deprecated, because in ES3 browsers, "true" is a reserved word
date
element
error
function
- is.fn(value)
- is.function(value) - deprecated, because in ES3 browsers, "function" is a reserved word
number
- is.number (value)
- is.infinite (value)
- is.decimal (value)
- is.divisibleBy (value, n)
- is.int (value)
- is.maximum (value, others)
- is.minimum (value, others)
- is.nan (value)
- is.even (value)
- is.odd (value)
- is.ge (value, other)
- is.gt (value, other)
- is.le (value, other)
- is.lt (value, other)
- is.within (value, start, finish)
object
regexp
string
Contributors
License
(The MIT License)
Copyright (c) 2013 Enrico Marino
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.