Node's Perfect Mate

    isitjs

    2.3.3 • Public • Published

    isit.js

    JS.ORG

    This is a general-purpose check library.

    • No dependencies
    • AMD, Node & browser ready
    • Supports all ES5 and above environments (IE8 and below with es5-shim)

    Note

    The origin of this project was the wonderful work done by arasatasaygin at is.js, and should be a drop-in replacement for it (outside renaming of is to isit). I noticed there has hasn't been work on it in months, and the issues are growing, so I originally just did a fork of the work. From there I rearchitected the library to be a modular setup that is ES2015-driven and has complete test coverage. I have also made minor tweaks and bugfixes based on the backlog in is.js, but mainly I hope to grow it from here.

    Install:

    Node.js:

    npm i isitjs --save
    

    Usage:

    // ES2015
    import isit from "isitjs";
    
    // CommonJS
    var isit = require("isitjs");
    
    // if you just want specific categories
    import isitType from "isit/lib/type";
    // or
    var isitType from require("isit/lib/type").default;
    
    // if you just want specific modules
    import {
        isitBoolean // all functions are named the same, just with "isit" in front and made camelCase
    } from "isitjs/lib/type";
    // or
    var isitBoolean = require("isitjs/lib/type").isitBoolean;
    

    Custom build:

    TBD ... this feature was janky from the beginning and may no longer be needed with the modular setup. To do it right will take some time, so I'll wait to hear from the community before I invest the time to build it.

    Type checks

    isit.arguments(value:any)

    Checks if the given value type is arguments.

    interfaces: not, all, any

    var getArguments = function() {
        return arguments;
    };
    var arguments = getArguments();
     
    isit.arguments(arguments);
    => true
     
    isit.not.arguments({foo: 'bar'});
    => true
     
    isit.all.arguments(arguments, 'bar');
    => false
     
    isit.any.arguments(['foo'], arguments);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.arguments([arguments, 'foo', 'bar']);
    => false

    isit.array(value:any)

    Checks if the given value type is array.

    interfaces: not, all, any

    isit.array(['foo', 'bar', 'baz']);
    => true
     
    isit.not.array({foo: 'bar'});
    => true
     
    isit.all.array(['foo'], 'bar');
    => false
     
    isit.any.array(['foo'], 'bar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.array([[1, 2], 'foo', 'bar']);
    => false

    isit.boolean(value:any)

    Checks if the given value type is boolean.

    interfaces: not, all, any

    isit.boolean(true);
    => true
     
    isit.not.boolean({foo: 'bar'});
    => true
     
    isit.all.boolean(true, 'bar');
    => false
     
    isit.any.boolean(true, 'bar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.boolean([true, 'foo', 'bar']);
    => false

    isit.date(value:any)

    Checks if the given value type is date.

    interfaces: not, all, any

    isit.date(new Date());
    => true
     
    isit.not.date({foo: 'bar'});
    => true
     
    isit.all.date(new Date(), 'bar');
    => false
     
    isit.any.date(new Date(), 'bar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.date([new Date(), 'foo', 'bar']);
    => false

    isit.error(value:any)

    Checks if the given value type is error.

    interfaces: not, all, any

    isit.error(new Error());
    => true
     
    isit.not.error({foo: 'bar'});
    => true
     
    isit.all.error(new Error(), 'bar');
    => false
     
    isit.any.error(new Error(), 'bar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.error([new Error(), 'foo', 'bar']);
    => false

    isit.function(value:any)

    Checks if the given value type is function.

    interfaces: not, all, any

    isit.function(toString);
    => true
     
    isit.not.function({foo: 'bar'});
    => true
     
    isit.all.function(toString, 'bar');
    => false
     
    isit.any.function(toString, 'bar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.function([toString, 'foo', 'bar']);
    => false

    isit.nan(value:any)

    Checks if the given value type is NaN.

    interfaces: not, all, any

    isit.nan(NaN);
    => true
     
    isit.not.nan(42);
    => true
     
    isit.all.nan(NaN, 1);
    => false
     
    isit.any.nan(NaN, 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.nan([NaN, 'foo', 1]);
    => false

    isit.null(value:any)

    Checks if the given value type is null.

    interfaces: not, all, any

    isit.null(null);
    => true
     
    isit.not.null(42);
    => true
     
    isit.all.null(null, 1);
    => false
     
    isit.any.null(null, 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.null([null, 'foo', 1]);
    => false

    isit.number(value:any)

    Checks if the given value type is number.

    interfaces: not, all, any

    isit.number(42);
    => true
     
    isit.number(NaN);
    => false
     
    isit.not.number('42');
    => true
     
    isit.all.number('foo', 1);
    => false
     
    isit.any.number({}, 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.number([42, 'foo', 1]);
    => false

    isit.object(value:any)

    Checks if the given value type is object.

    interfaces: not, all, any

    isit.object({foo: 'bar'});
    => true
     
    // functions are also returning as true
    isit.object(toString);
    => true
     
    isit.not.object('foo');
    => true
     
    isit.all.object({}, 1);
    => false
     
    isit.any.object({}, 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.object([{}, new Object()]);
    => true

    isit.json(value:any)

    Checks if the given value type is pure json object.

    interfaces: not, all, any

    isit.json({foo: 'bar'});
    => true
     
    // functions are returning as false
    isit.json(toString);
    => false
     
    isit.not.json([]);
    => true
     
    isit.all.json({}, 1);
    => false
     
    isit.any.json({}, 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.json([{}, {foo: 'bar'}]);
    => true

    isit.regexp(value:any)

    Checks if the given value type is RegExp.

    interfaces: not, all, any

    isit.regexp(/test/);
    => true
     
    isit.not.regexp(['foo']);
    => true
     
    isit.all.regexp(/test/, 1);
    => false
     
    isit.any.regexp(new RegExp('ab+c'), 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.regexp([{}, /test/]);
    => false

    isit.string(value:any)

    Checks if the given value type is string.

    interfaces: not, all, any

    isit.string('foo');
    => true
     
    isit.not.string(['foo']);
    => true
     
    isit.all.string('foo', 1);
    => false
     
    isit.any.string('foo', 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.string([{}, 'foo']);
    => false

    isit.char(value:any)

    Checks if the given value type is char.

    interfaces: not, all, any

    isit.char('f');
    => true
     
    isit.not.char(['foo']);
    => true
     
    isit.all.char('f', 1);
    => false
     
    isit.any.char('f', 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.char(['f', 'o', 'o']);
    => true

    isit.undefined(value:any)

    Checks if the given value type is undefined.

    interfaces: not, all, any

    isit.undefined(undefined);
    => true
     
    isit.not.undefined(null);
    => true
     
    isit.all.undefined(undefined, 1);
    => false
     
    isit.any.undefined(undefined, 2);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.undefined([{}, undefined]);
    => false

    isit.sameType(value:any, value:any)

    Checks if the given value types are same type.

    interface: not

    isit.sameType(42, 7);
    => true
     
    isit.sameType(42, '7');
    => false
     
    isit.not.sameType(42, 7);
    => false

    isit.typedArray(value:any)

    Checks if the given value is a typed array.

    interfaces: not, all, any

    isit.typedArray(new Float32Array());
    => true
     
    isit.typedArray([]);
    => false
     
    isit.not.typedArray(new Uint16Array());
    => false
     
    isit.all.typedArray(undefined, new Int8Array());
    => false
     
    isit.any.typedArray(undefined, new Int8Array());
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.typedArray([new Float64Array(), undefined]);
    => false

    Presence checks

    isit.empty(value:object|array|string)

    Checks if the given value is empty.

    interfaces: not, all, any

    isit.empty({});
    => true
     
    isit.empty([]);
    => true
     
    isit.empty('');
    => true
     
    isit.not.empty(['foo']);
    => true
     
    isit.all.empty('', {}, ['foo']);
    => false
     
    isit.any.empty([], 42);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.empty([{}, 'foo']);
    => false

    isit.existy(value:any)

    Checks if the given value is existy. (not null or undefined)

    interfaces: not, all, any

    isit.existy({});
    => true
     
    isit.existy(null);
    => false
     
    isit.not.existy(undefined);
    => true
     
    isit.all.existy(null, ['foo']);
    => false
     
    isit.any.existy(undefined, 42);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.existy([{}, 'foo']);
    => true

    isit.truthy(value:any)

    Checks if the given value is truthy. (existy and not false)

    interfaces: not, all, any

    isit.truthy(true);
    => true
     
    isit.truthy(null);
    => false
     
    isit.not.truthy(false);
    => true
     
    isit.all.truthy(null, true);
    => false
     
    isit.any.truthy(undefined, true);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.truthy([{}, true]);
    => true

    isit.falsy(value:any)

    Checks if the given value is falsy.

    interfaces: not, all, any

    isit.falsy(false);
    => true
     
    isit.falsy(null);
    => true
     
    isit.not.falsy(true);
    => true
     
    isit.all.falsy(null, false);
    => true
     
    isit.any.falsy(undefined, true);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.falsy([false, true, undefined]);
    => false

    isit.space(value:string)

    Checks if the given value is space.

    interfaces: not, all, any

    isit.space(' ');
    => true
     
    isit.space('foo');
    => false
     
    isit.not.space(true);
    => true
     
    isit.all.space(' ', 'foo');
    => false
     
    isit.any.space(' ', true);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.space([' ', 'foo', undefined]);
    => false

    isit.whitespace(value:string)

    Checks if the given value is whitespace.

    interfaces: not, all, any

    isit.whitespace(' ');
    => true
     
    isit.whitespace('foo');
    => false
     
    isit.not.whitespace(true);
    => true
     
    isit.all.whitespace('          ', ' ');
    => true
     
    isit.any.whitespace(' ', true);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.whitespace([' ', 'foo', undefined]);
    => false

    RegExp checks

    isit.url(value:any)

    Checks if the given value matches url regexp.

    interfaces: not, all, any

    isit.url('http://www.test.com');
    => true
     
    isit.url('foo');
    => false
     
    isit.not.url(true);
    => true
     
    isit.all.url('http://www.test.com', 'foo');
    => false
     
    isit.any.url('http://www.test.com', true);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.url(['http://www.test.com', 'foo', undefined]);
    => false

    isit.email(value:any)

    Checks if the given value matches email regexp.

    interfaces: not, all, any

    isit.email('test@test.com');
    => true
     
    isit.email('foo');
    => false
     
    isit.not.email('foo');
    => true
     
    isit.all.email('test@test.com', 'foo');
    => false
     
    isit.any.email('test@test.com', 'foo');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.email(['test@test.com', 'foo', undefined]);
    => false

    isit.creditCard(value:any)

    Checks if the given value matches credit card regexp.

    interfaces: not, all, any

    isit.creditCard(378282246310005);
    => true
     
    isit.creditCard(123);
    => false
     
    isit.not.creditCard(123);
    => true
     
    isit.all.creditCard(378282246310005, 123);
    => false
     
    isit.any.creditCard(378282246310005, 123);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.creditCard([378282246310005, 123, undefined]);
    => false

    isit.alphaNumeric(value:any)

    Checks if the given value matches alpha numeric regexp.

    interfaces: not, all, any

    isit.alphaNumeric('alphaNu3er1k');
    => true
     
    isit.alphaNumeric('*?');
    => false
     
    isit.not.alphaNumeric('*?');
    => true
     
    isit.all.alphaNumeric('alphaNu3er1k', '*?');
    => false
     
    isit.any.alphaNumeric('alphaNu3er1k', '*?');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.alphaNumeric(['alphaNu3er1k', '*?']);
    => false

    isit.timeString(value:any)

    Checks if the given value matches time string regexp.

    interfaces: not, all, any

    isit.timeString('13:45:30');
    => true
     
    isit.timeString('90:90:90');
    => false
     
    isit.not.timeString('90:90:90');
    => true
     
    isit.all.timeString('13:45:30', '90:90:90');
    => false
     
    isit.any.timeString('13:45:30', '90:90:90');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.timeString(['13:45:30', '90:90:90']);
    => false

    isit.dateString(value:any)

    Checks if the given value matches date string regexp.

    interfaces: not, all, any

    isit.dateString('11/11/2011');
    => true
     
    isit.dateString('90/11/2011');
    => false
     
    isit.not.dateString('90/11/2011');
    => true
     
    isit.all.dateString('11/11/2011', '90/11/2011');
    => false
     
    isit.any.dateString('11/11/2011', '90/11/2011');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.dateString(['11/11/2011', '90/11/2011']);
    => false

    isit.usZipCode(value:any)

    Checks if the given value matches US zip code regexp.

    interfaces: not, all, any

    isit.usZipCode('02201-1020');
    => true
     
    isit.usZipCode('123');
    => false
     
    isit.not.usZipCode('123');
    => true
     
    isit.all.usZipCode('02201-1020', '123');
    => false
     
    isit.any.usZipCode('02201-1020', '123');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.usZipCode(['02201-1020', '123']);
    => false

    isit.caPostalCode(value:any)

    Checks if the given value matches Canada postal code regexp.

    interfaces: not, all, any

    isit.caPostalCode('L8V3Y1');
    => true
     
    isit.caPostalCode('L8V 3Y1');
    => true
     
    isit.caPostalCode('123');
    => false
     
    isit.not.caPostalCode('123');
    => true
     
    isit.all.caPostalCode('L8V3Y1', '123');
    => false
     
    isit.any.caPostalCode('L8V3Y1', '123');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.caPostalCode(['L8V3Y1', '123']);
    => false

    isit.ukPostCode(value:any)

    Checks if the given value matches UK post code regexp.

    interfaces: not, all, any

    isit.ukPostCode('B184BJ');
    => true
     
    isit.ukPostCode('123');
    => false
     
    isit.not.ukPostCode('123');
    => true
     
    isit.all.ukPostCode('B184BJ', '123');
    => false
     
    isit.any.ukPostCode('B184BJ', '123');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.ukPostCode(['B184BJ', '123']);
    => false

    isit.nanpPhone(value:any)

    Checks if the given value matches North American numbering plan phone regexp.

    interfaces: not, all, any

    isit.nanpPhone('609-555-0175');
    => true
     
    isit.nanpPhone('123');
    => false
     
    isit.not.nanpPhone('123');
    => true
     
    isit.all.nanpPhone('609-555-0175', '123');
    => false
     
    isit.any.nanpPhone('609-555-0175', '123');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.nanpPhone(['609-555-0175', '123']);
    => false

    isit.eppPhone(value:any)

    Checks if the given value matches extensible provisioning protocol phone regexp.

    interfaces: not, all, any

    isit.eppPhone('+90.2322456789');
    => true
     
    isit.eppPhone('123');
    => false
     
    isit.not.eppPhone('123');
    => true
     
    isit.all.eppPhone('+90.2322456789', '123');
    => false
     
    isit.any.eppPhone('+90.2322456789', '123');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.eppPhone(['+90.2322456789', '123']);
    => false

    isit.socialSecurityNumber(value:any)

    Checks if the given value matches social security number regexp.

    interfaces: not, all, any

    isit.socialSecurityNumber('017-90-7890');
    => true
     
    isit.socialSecurityNumber('123');
    => false
     
    isit.not.socialSecurityNumber('123');
    => true
     
    isit.all.socialSecurityNumber('017-90-7890', '123');
    => false
     
    isit.any.socialSecurityNumber('017-90-7890', '123');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.socialSecurityNumber(['017-90-7890', '123']);
    => false

    isit.affirmative(value:any)

    Checks if the given value matches affirmative regexp.

    interfaces: not, all, any

    isit.affirmative('yes');
    => true
     
    isit.affirmative('no');
    => false
     
    isit.not.affirmative('no');
    => true
     
    isit.all.affirmative('yes', 'no');
    => false
     
    isit.any.affirmative('yes', 'no');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.affirmative(['yes', 'y', 'true', 't', 'ok', 'okay']);
    => true

    isit.hexadecimal(value:any)

    Checks if the given value matches hexadecimal regexp.

    interfaces: not, all, any

    isit.hexadecimal('f0f0f0');
    => true
     
    isit.hexadecimal(2.5);
    => false
     
    isit.not.hexadecimal('string');
    => true
     
    isit.all.hexadecimal('ff', 'f50');
    => true
     
    isit.any.hexadecimal('ff5500', true);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.hexadecimal(['fff', '333', 'f50']);
    => true

    isit.hexColor(value:any)

    Checks if the given value matches hexcolor regexp.

    interfaces: not, all, any

    isit.hexColor('#333');
    => true
     
    isit.hexColor('#3333');
    => false
     
    isit.not.hexColor(0.5);
    => true
     
    isit.all.hexColor('fff', 'f50');
    => true
     
    isit.any.hexColor('ff5500', 0.5);
    => false
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.hexColor(['fff', '333', 'f50']);
    => true

    isit.ip(value:string)

    Checks if the given value matches ip regexp

    interfaces: not, all, any

    isit.ip('198.156.23.5');
    => true
     
    isit.ip('1.2..5');
    => false
     
    isit.not.ip('8:::::::7');
    => true
     
    isit.all.ip('0:1::4:ff5:54:987:C', '123.123.123.123');
    => true
     
    isit.any.ip('123.8.4.3', '0.0.0.0');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.ip(['123.123.23.12', 'A:B:C:D:E:F:0:0']);
    => true

    isit.ipv4(value:string)

    Checks if the given value matches ipv4 regexp

    interfaces: not, all, any

    isit.ipv4('198.12.3.142');
    => true
     
    isit.ipv4('1.2..5');
    => false
     
    isit.not.ipv4('8:::::::7');
    => true
     
    isit.all.ipv4('198.12.3.142', '123.123.123.123');
    => true
     
    isit.any.ipv4('255.255.255.255', '850..1.4');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.ipv4(['198.12.3.142', '1.2.3']);
    => false
     

    isit.ipv6(value:string)

    Checks if the given value matches ipv6 regexp

    interfaces: not, all, any

    isit.ipv6('2001:DB8:0:0:1::1');
    => true
     
    isit.ipv6('985.12.3.4');
    => true
     
    isit.not.ipv6('8:::::::7');
    => true
     
    isit.all.ipv6('2001:DB8:0:0:1::1', '1:50:198:2::1:2:8');
    => true
     
    isit.any.ipv6('255.255.255.255', '2001:DB8:0:0:1::1');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.ipv6(['2001:DB8:0:0:1::1', '1.2.3']);
    => false

    isit.isoDateString(value:any)

    Checks if the given value matches valid ISO strings (full ISO compliance).

    interfaces: not, all, any

    isit.isoDateString('2010-01-15');
    => true
     
    isit.isoDateString('1/15/2010');
    => false
     
    isit.not.isoDateString('1/15/2010');
    => true
     
    isit.all.isoDateString('2010-01T12:34', '1/15/2010');
    => false
     
    isit.any.isoDateString('2007-04-05T24:00', '1/15/2010');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.isoDateString(['2010-222', '2010-W21-2']);
    => true

    String checks

    isit.include(value:string, value:substring)

    Checks if the given string contains a substring.

    interfaces: not

    isit.include('Some text goes here', 'text');
    => true
     
    isit.include('test', 'text');
    => false
     
    isit.not.include('test', 'text');
    => true

    isit.includes(value:string, value:substring)

    alias for isit.include

    isit.upperCase(value:string)

    Checks if the given string is UPPERCASE.

    interfaces: not, all, any

    isit.upperCase('YEAP');
    => true
     
    isit.upperCase('nope');
    => false
     
    isit.not.upperCase('Nope');
    => true
     
    isit.all.upperCase('YEAP', 'nope');
    => false
     
    isit.any.upperCase('YEAP', 'nope');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.upperCase(['YEAP', 'ALL UPPERCASE']);
    => true

    isit.lowerCase(value:string)

    Checks if the given string is lowercase.

    interfaces: not, all, any

    isit.lowerCase('yeap');
    => true
     
    isit.lowerCase('NOPE');
    => false
     
    isit.not.lowerCase('Nope');
    => true
     
    isit.all.lowerCase('yeap', 'NOPE');
    => false
     
    isit.any.lowerCase('yeap', 'NOPE');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.lowerCase(['yeap', 'all lowercase']);
    => true

    isit.startWith(value:string, value:substring)

    Checks if the given string starts with substring.

    interface: not

    isit.startWith('yeap', 'ye');
    => true
     
    isit.startWith('nope', 'ye');
    => false
     
    isit.not.startWith('nope not that', 'not');
    => true

    isit.startsWith(value:string, value:substring)

    alias for isit.startWith

    isit.endWith(value:string, value:substring)

    Checks if the given string ends with substring.

    interfaces: not

    isit.endWith('yeap', 'ap');
    => true
     
    isit.endWith('nope', 'no');
    => false
     
    isit.not.endWith('nope not that', 'not');
    => true
     
    isit.endWith('yeap that one', 'one');
    => true

    isit.endsWith(value:string, value:substring)

    alias for isit.endWith

    isit.capitalized(value:string)

    Checks if the given string is capitalized.

    interfaces: not, all, any

    isit.capitalized('Yeap');
    => true
     
    isit.capitalized('nope');
    => false
     
    isit.not.capitalized('nope not capitalized');
    => true
     
    isit.all.capitalized('Yeap', 'All', 'Capitalized');
    => true
     
    isit.any.capitalized('Yeap', 'some', 'Capitalized');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.capitalized(['Nope', 'not']);
    => false

    isit.palindrome(value:string, value:substring)

    Checks if the given string is palindrome.

    interfaces: not, all, any

    isit.palindrome('testset');
    => true
     
    isit.palindrome('nope');
    => false
     
    isit.not.palindrome('nope not palindrome');
    => true
     
    isit.all.palindrome('testset', 'tt');
    => true
     
    isit.any.palindrome('Yeap', 'some', 'testset');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.palindrome(['Nope', 'testset']);
    => false

    isit.camelCase(value:string)

    Checks if the given string is camelCase.

    interfaces: not, all, any

    isit.camelCase('fooBar');
    => true
     
    isit.camelCase('Foo Bar');
    => false
     
    isit.not.camelCase('nope not camel case');
    => true
     
    isit.all.camelCase('fooBar', 'tastyCakes', 'iThinkYouGetIt');
    => true
     
    isit.any.camelCase('Yeap', 'some', 'fooBar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.camelCase(['Nope', 'fooBar']);
    => false

    isit.kebabCase(value:string)

    Checks if the given string is -kebab-case.

    interfaces: not, all, any

    isit.kebabCase('-foo-bar');
    => true
     
    isit.kebabCase('Foo Bar');
    => false
     
    isit.not.kebabCase('nope not kebab case');
    => true
     
    isit.all.kebabCase('-foo-bar', '-tasty-cakes', '-i-think-you-get-it');
    => true
     
    isit.any.kebabCase('Yeap', 'some', '-foo-bar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.kebabCase(['Nope', '-foo-bar']);
    => false

    isit.snakeCase(value:string)

    Checks if the given string is snake_case.

    interfaces: not, all, any

    isit.snakeCase('foo_bar');
    => true
     
    isit.snakeCase('Foo Bar');
    => false
     
    isit.not.snakeCase('nope not snake case');
    => true
     
    isit.all.snakeCase('foo_bar', 'tasty_cakes', 'i_think_yoU_get_it');
    => true
     
    isit.any.snakeCase('Yeap', 'some', 'foo_bar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.snakeCase(['Nope', 'foo_bar']);
    => false

    isit.startCase(value:string)

    Checks if the given string is Start Case.

    interfaces: not, all, any

    isit.startCase('Foo Bar');
    => true
     
    isit.startCase('fooBar');
    => false
     
    isit.not.startCase('-nope-not-start-case');
    => true
     
    isit.all.startCase('Foo Bar', 'Tasty Cakes', 'I Think You Get It');
    => true
     
    isit.any.startCase('Yeap', 'some', '-foo-bar');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.startCase(['Nope', '-foo-bar']);
    => false

    isit.doubleByte(value:string)

    Checks if the given string contains two-byte (or non-Latin) characters.

    interfaces: not, all, any

    isit.doubleByte('は123');
    => true
     
    isit.doubleByte('foo');
    => false
     
    isit.not.doubleByte('foo');
    => true
     
    isit.all.doubleByte('は123', 'はtest');
    => true
     
    isit.any.doubleByte('は123', 'some', '');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.doubleByte(['Nope', 'は123']);
    => false

    isit.html(value:string)

    Checks if the given string contains HTML tags.

    interfaces: not, all, any

    isit.html('<div></div>');
    => true
     
    isit.html('div');
    => false
     
    isit.not.html('foo');
    => true
     
    isit.all.html('<input type="text">', '<br/>');
    => true
     
    isit.any.html('<img src="happyKittens.jpg">', 'foo', '');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.html(['Nope', '<div/>']);
    => false

    isit.dataUrl(value:string)

    Checks if the given string is a data URL.

    interfaces: not, all, any

    isit.dataUrl('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC');
    => true
     
    isit.dataUrl('data:empty');
    => false
     
    isit.not.dataUrl('data:empty');
    => true
     
    isit.all.dataUrl('data:text/html;charset=US-ASCII,%3Ch1%3EHello!%3C%2Fh1%3E', 'data:,A%20brief%20note');
    => true
     
    isit.any.dataUrl('data:text/html;charset=US-ASCII,%3Ch1%3EHello!%3C%2Fh1%3E', 'foo');
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.dataUrl(['Nope', 'data:text/html;charset=US-ASCII,%3Ch1%3EHello!%3C%2Fh1%3E']);
    => false

    Arithmetic checks

    isit.equal(value:any, value:any)

    Checks if the given values are equal. For objects and arrays, deep equality checks occur.

    interfaces: not

    isit.equal(42, 40 + 2);
    => true
     
    isit.equal('yeap', 'yeap');
    => true
     
    isit.equal(true, true);
    => true
     
    isit.equal({foo:"bar"}, {foo:"bar"});
    => true
     
    isit.equal(["foo", "bar"], ["foo", "bar"]);
    => true
     
    isit.not.equal('yeap', 'nope');
    => true
     
    isit.not.equal(["foo", "bar"], ["bar", "foo"]); // for arrays, order matters for equality
    => true

    isit.even(value:number)

    Checks if the given value is even.

    interfaces: not, all, any

    isit.even(42);
    => true
     
    isit.not.even(41);
    => true
     
    isit.all.even(40, 42, 44);
    => true
     
    isit.any.even(39, 42, 43);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.even([40, 42, 43]);
    => false

    isit.odd(value:number)

    Checks if the given value is odd.

    interfaces: not, all, any

    isit.odd(41);
    => true
     
    isit.not.odd(42);
    => true
     
    isit.all.odd(39, 41, 43);
    => true
     
    isit.any.odd(39, 42, 44);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.odd([40, 42, 43]);
    => false

    isit.positive(value:number)

    Checks if the given value is positive.

    interfaces: not, all, any

    isit.positive(41);
    => true
     
    isit.not.positive(-42);
    => true
     
    isit.all.positive(39, 41, 43);
    => true
     
    isit.any.positive(-39, 42, -44);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.positive([40, 42, -43]);
    => false

    isit.negative(value:number)

    Checks if the given value is negative.

    interfaces: not, all, any

    isit.negative(-41);
    => true
     
    isit.not.negative(42);
    => true
     
    isit.all.negative(-39, -41, -43);
    => true
     
    isit.any.negative(-39, 42, 44);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.negative([40, 42, -43]);
    => false

    isit.above(value:number, min)

    Checks if the given value is above minimum value.

    interface: not

    isit.above(41, 30);
    => true
     
    isit.not.above(42, 50);
    => true

    isit.over(value:number, min)

    alias for isit.above

    isit.under(value:number, min)

    Checks if the given value is under maximum value.

    interface: not

    isit.under(30, 35);
    => true
     
    isit.not.under(42, 30);
    => true

    isit.below(value:number, min)

    alias for isit.under

    isit.within(value:number, min, max)

    Checks if the given value is within minimum and maximum values.

    interface: not

    isit.within(30, 20, 40);
    => true
     
    isit.not.within(40, 30, 35);
    => true

    isit.decimal(value:number)

    Checks if the given value is decimal.

    interfaces: not, all, any

    isit.decimal(41.5);
    => true
     
    isit.not.decimal(42);
    => true
     
    isit.all.decimal(39.5, 41.5, -43.5);
    => true
     
    isit.any.decimal(-39, 42.5, 44);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.decimal([40, 42.5, -43]);
    => false

    isit.integer(value:number)

    Checks if the given value is integer.

    interfaces: not, all, any

    isit.integer(41);
    => true
     
    isit.not.integer(42.5);
    => true
     
    isit.all.integer(39, 41, -43);
    => true
     
    isit.any.integer(-39, 42.5, 44);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.integer([40, 42.5, -43]);
    => false

    isit.finite(value:number)

    Checks if the given value is finite.

    interfaces: not, all, any

    isit.finite(41);
    => true
     
    isit.not.finite(42 / 0);
    => true
     
    isit.all.finite(39, 41, -43);
    => true
     
    isit.any.finite(-39, Infinity, 44);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.finite([Infinity, -Infinity, 42.5]);
    => false

    isit.infinite(value:number)

    Checks if the given value is infinite.

    interfaces: not, all, any

    isit.infinite(Infinity);
    => true
     
    isit.not.infinite(42);
    => true
     
    isit.all.infinite(Infinity, -Infinity, -43 / 0);
    => true
     
    isit.any.infinite(-39, Infinity, 44);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.infinite([Infinity, -Infinity, 42.5]);
    => false

    Object checks

    isit.propertyCount(value:object, count)

    Checks if objects' property count is equal to given count.

    interface: not

    isit.propertyCount({this: 'is', 'sample': object}, 2);
    => true
     
    isit.propertyCount({this: 'is', 'sample': object}, 3);
    => false
     
    isit.not.propertyCount({}, 2);
    => true

    isit.propertyDefined(value:object, property)

    Checks if the given property is defined on object.

    interface: not

    isit.propertyDefined({yeap: 'yeap'}, 'yeap');
    => true
     
    isit.propertyDefined({yeap: 'yeap'}, 'nope');
    => false
     
    isit.not.propertyDefined({}, 'nope');
    => true

    isit.windowObject(value:window)

    Checks if the given object is window object.

    interfaces: not, all, any

    isit.windowObject(window);
    => true
     
    isit.windowObject({nope: 'nope'});
    => false
     
    isit.not.windowObject({});
    => true
     
    isit.all.windowObject(window, {nope: 'nope'});
    => false
     
    isit.any.windowObject(window, {nope: 'nope'});
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.windowObject([window, {nope: 'nope'}]);
    => false

    isit.domNode(value:object)

    Checks if the given object is a dom node.

    interfaces: not, all, any

    var obj = document.createElement('div');
    isit.domNode(obj);
    => true
     
    isit.domNode({nope: 'nope'});
    => false
     
    isit.not.domNode({});
    => true
     
    isit.all.domNode(obj, obj);
    => true
     
    isit.any.domNode(obj, {nope: 'nope'});
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.domNode([obj, {nope: 'nope'}]);
    => false

    isit.jquery(value:object)

    Checks if the given object is a jQuery object or jQuery itself.

    interfaces: not, all, any

    isit.jquery($("#test-div"));
    => true
     
    isit.jquery({});
    => false
     
    isit.not.jquery({});
    => true
     
    isit.all.jquery($, $("#test-div"));
    => true
     
    isit.any.jquery($, {nope: 'nope'});
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.jquery([$, {nope: 'nope'}]);
    => false

    isit.domNodeList(value:object)

    Checks if the given object is a dom NodeList.

    interfaces: not, all, any

    var obj = document.querySelectorAll('div');
    isit.domNodeList(obj);
    => true
     
    isit.domNodeList({nope: 'nope'});
    => false
     
    isit.not.domNodeList({});
    => true
     
    isit.all.domNodeList(obj, document.querySelectorAll('span'));
    => true
     
    isit.any.domNodeList(obj, {nope: 'nope'});
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.domNodeList([obj, {nope: 'nope'}]);
    => false

    isit.plainObject(value:object)

    Checks if the given object is a plain JavaScript object.

    interfaces: not, all, any

    isit.plainObject({});
    => true
     
    isit.plainObject(new SomeConstructor());
    => false
     
    isit.not.plainObject(new SomeConstructor());
    => true
     
    isit.all.plainObject({some:"object"}, document.querySelector('#dom-node'));
    => false
     
    isit.all.plainObject({some:"object"}, document.querySelector('#dom-node'));
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.plainObject([{some:"object"}, document.querySelector('#dom-node')]);
    => false

    Array checks

    isit.inArray(value:any, array)

    Checks if the given item is in array?

    interface: not

    isit.inArray(2, [1, 2, 3]);
    => true
     
    isit.inArray(4, [1, 2, 3]);
    => false
     
    isit.not.inArray(4, [1, 2, 3]);
    => true

    isit.sorted(value:array)

    Checks if the given array is sorted.

    interfaces: not, all, any

    isit.sorted([1, 2, 3]);
    => true
     
    isit.sorted([1, 2, 4, 3]);
    => false
     
    isit.not.sorted([5, 3, 4]);
    => true
     
    isit.all.sorted([1, 2, 3], [4, 3, 2]); // sort checks either ascending or descending
    => true
     
    isit.any.sorted([1, 2], [5, 4, 7]);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.sorted([[1, 2], [5, 4, 7]]);
    => false

    Environment checks

    Environment checks are not available as node module.

    isit.browser()

    Checks if current environment is browser.

    interface: not

    isit.browser()
    => true if in browser

    isit.node()

    Checks if current environment is nodejs.

    interface: not

    isit.node()
    => true if in nodejs

    isit.ie(value:number)

    Checks if current browser is ie. Parameter is optional version number of browser.

    interface: not

    isit.ie();
    => true if current browser is ie
     
    isit.ie(6);
    => hopefully false
     
    isit.not.ie();
    => false if current browser is ie

    isit.chrome()

    Checks if current browser is chrome.

    interface: not

    isit.chrome();
    => true if current browser is chrome
     
    isit.not.chrome();
    => false if current browser is chrome

    isit.firefox()

    Checks if current browser is firefox.

    interface: not

    isit.firefox();
    => true if current browser is firefox
     
    isit.not.firefox();
    => false if current browser is firefox

    isit.opera()

    Checks if current browser is opera.

    interface: not

    isit.opera();
    => true if current browser is opera
     
    isit.not.opera();
    => false if current browser is opera

    isit.safari()

    Checks if current browser is safari.

    interface: not

    isit.safari();
    => true if current browser is safari
     
    isit.not.safari();
    => false if current browser is safari

    isit.ios()

    Checks if current device has ios.

    interface: not

    isit.ios();
    => true if current device is iPhone, iPad or iPod
     
    isit.not.ios();
    => true if current device is not iPhone, iPad or iPod

    isit.iphone()

    Checks if current device is iPhone.

    interface: not

    isit.iphone();
    => true if current device is iPhone
     
    isit.not.iphone();
    => true if current device is not iPhone

    isit.ipad()

    Checks if current device is iPad.

    interface: not

    isit.ipad();
    => true if current device is iPad
     
    isit.not.ipad();
    => true if current device is not iPad

    isit.ipod()

    Checks if current device is iPod.

    interface: not

    isit.ipod();
    => true if current device is iPod
     
    isit.not.ipod();
    => true if current device is not iPod

    isit.android()

    Checks if current device has Android.

    interface: not

    isit.android();
    => true if current device has Android OS
     
    isit.not.android();
    => true if current device has not Android OS

    isit.androidPhone()

    Checks if current device is Android phone.

    interface: not

    isit.androidPhone();
    => true if current device is Android phone
     
    isit.not.androidPhone();
    => true if current device is not Android phone

    isit.androidTablet()

    Checks if current device is Android tablet.

    interface: not

    isit.androidTablet();
    => true if current device is Android tablet
     
    isit.not.androidTablet();
    => true if current device is not Android tablet

    isit.blackberry()

    Checks if current device is Blackberry.

    interface: not

    isit.blackberry();
    => true if current device is Blackberry
     
    isit.not.blackberry();
    => true if current device is not Blackberry

    isit.windowsPhone()

    Checks if current device is Windows phone.

    interface: not

    isit.windowsPhone();
    => true if current device is Windows phone
     
    isit.not.windowsPhone();
    => true if current device is not Windows Phone

    isit.windowsTablet()

    Checks if current device is Windows tablet.

    interface: not

    isit.windowsTablet();
    => true if current device is Windows tablet
     
    isit.not.windowsTablet();
    => true if current device is not Windows tablet

    isit.windows()

    Checks if current OS is Windows.

    interface: not

    isit.windows();
    => true if current OS is Windows
     
    isit.not.windows();
    => true if current OS is not Windows

    isit.mac()

    Checks if current OS is Mac OS X.

    interface: not

    isit.mac();
    => true if current OS is Mac OS X
     
    isit.not.mac();
    => true if current OS is not Mac OS X

    isit.linux()

    Checks if current OS is linux.

    interface: not

    isit.linux();
    => true if current OS is linux
     
    isit.not.linux();
    => true if current OS is not linux

    isit.desktop()

    Checks if current device is desktop.

    interface: not

    isit.desktop();
    => true if current device is desktop
     
    isit.not.desktop();
    => true if current device is not desktop

    isit.mobile()

    Checks if current device is mobile.

    interface: not iPhone, iPod, Android Phone, Windows Phone, Blackberry.

     
    isit.mobile();
    => true if current device is mobile
     
    isit.not.mobile();
    => true if current device is not mobile

    isit.tablet()

    Checks if current device is tablet.

    interface: not iPad, Android Tablet, Windows Tablet

     
    isit.tablet();
    => true if current device is tablet
     
    isit.not.tablet();
    => true if current device is not tablet

    isit.online()

    Checks if current device is online.

    interface: not

    isit.online();
    => true if current device is online
     
    isit.not.online();
    => true if current device is not online

    isit.offline()

    Checks if current device is offline.

    interface: not

    isit.offline();
    => true if current device is offline
     
    isit.not.offline();
    => true if current device is not offline

    isit.touchDevice()

    Checks if current device supports touch.

    interface: not

    isit.touchDevice();
    => true if current device supports touch
     
    isit.not.touchDevice();
    => true if current device does not support touch

    isit.blink()

    Checks if browser rendering engine is Blink.

    interface: not

    isit.blink();
    => true if browser render with  Blink
     
    isit.not.blink();
    => true if browser does not render with Blink

    isit.gecko()

    Checks if browser rendering engine is Gecko.

    interface: not

    isit.gecko();
    => true if browser render with  Gecko
     
    isit.not.gecko();
    => true if browser does not render with Gecko

    isit.presto()

    Checks if browser rendering engine is Presto.

    interface: not

    isit.presto();
    => true if browser render with Presto
     
    isit.not.presto();
    => true if browser does not render with Presto

    isit.trident()

    Checks if browser rendering engine is Trident.

    interface: not

    isit.trident();
    => true if browser render with Trident
     
    isit.not.trident();
    => true if browser does not render with Trident

    isit.webkit()

    Checks if browser rendering engine is WebKit.

    interface: not

    isit.webkit();
    => true if browser render with WebKit
     
    isit.not.webkit();
    => true if browser does not render with WebKit

    Time checks

    isit.today(value:object)

    Checks if the given date object indicate today.

    interfaces: not, all, any

    var today = new Date();
    isit.today(today);
    => true
     
    var yesterday = new Date(new Date().setDate(new Date().getDate() - 1));
    isit.today(yesterday);
    => false
     
    isit.not.today(yesterday);
    => true
     
    isit.all.today(today, today);
    => true
     
    isit.any.today(today, yesterday);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.today([today, yesterday]);
    => false

    isit.yesterday(value:object)

    Checks if the given date object indicate yesterday.

    interfaces: not, all, any

    var today = new Date();
    isit.yesterday(today);
    => false
     
    var yesterday = new Date(new Date().setDate(new Date().getDate() - 1));
    isit.yesterday(yesterday);
    => true
     
    isit.not.yesterday(today);
    => true
     
    isit.all.yesterday(yesterday, today);
    => false
     
    isit.any.yesterday(today, yesterday);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.yesterday([today, yesterday]);
    => false

    isit.tomorrow(value:object)

    Checks if the given date object indicate tomorrow.

    interfaces: not, all, any

    var today = new Date();
    isit.tomorrow(today);
    => false
     
    var tomorrow = new Date(new Date().setDate(new Date().getDate() + 1));
    isit.tomorrow(tomorrow);
    => true
     
    isit.not.tomorrow(today);
    => true
     
    isit.all.tomorrow(tomorrow, today);
    => false
     
    isit.any.tomorrow(today, tomorrow);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.tomorrow([today, tomorrow]);
    => false

    isit.past(value:object)

    Checks if the given date object indicate past.

    interfaces: not, all, any

    var yesterday = new Date(new Date().setDate(new Date().getDate() - 1));
    var tomorrow = new Date(new Date().setDate(new Date().getDate() + 1));
     
    isit.past(yesterday);
    => true
     
    isit.past(tomorrow);
    => false
     
    isit.not.past(tomorrow);
    => true
     
    isit.all.past(tomorrow, yesterday);
    => false
     
    isit.any.past(yesterday, tomorrow);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.past([yesterday, tomorrow]);
    => false

    isit.future(value:object)

    Checks if the given date object indicate future.

    interfaces: not, all, any

    var yesterday = new Date(new Date().setDate(new Date().getDate() - 1));
    var tomorrow = new Date(new Date().setDate(new Date().getDate() + 1));
     
    isit.future(yesterday);
    => false
     
    isit.future(tomorrow);
    => true
     
    isit.not.future(yesterday);
    => true
     
    isit.all.future(tomorrow, yesterday);
    => false
     
    isit.any.future(yesterday, tomorrow);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.future([yesterday, tomorrow]);
    => false

    isit.day(value:object, dayString)

    Checks if the given date objects' day equal given dayString parameter. If not given, dayString defaults to current day.

    interface: not

    var mondayObj = new Date('01/26/2015');
    var tuesdayObj = new Date('01/27/2015');
    isit.day(mondayObj, 'monday');
    => true
     
    isit.day(mondayObj, 'tuesday');
    => false
     
    isit.not.day(mondayObj, 'tuesday');
    => true

    isit.month(value:object, monthString)

    Checks if the given date objects' month equal given monthString parameter. If not given, monthString defaults to current month.

    interface: not

    var januaryObj = new Date('01/26/2015');
    var februaryObj = new Date('02/26/2015');
    isit.month(januaryObj, 'january');
    => true
     
    isit.month(februaryObj, 'january');
    => false
     
    isit.not.month(februaryObj, 'january');
    => true

    isit.year(value:object, yearNumber)

    Checks if the given date objects' year equal given yearNumber parameter. If not given, yearNumber defaults to current year.

    interface: not

    var year2015 = new Date('01/26/2015');
    var year2016 = new Date('01/26/2016');
    isit.year(year2015, 2015);
    => true
     
    isit.year(year2016, 2015);
    => false
     
    isit.not.year(year2016, 2015);
    => true

    isit.leapYear(value:number)

    Checks if the given year number is a leap year

    interfaces: not, all, any

    isit.leapYear(2016);
    => true
     
    isit.leapYear(2015);
    => false
     
    isit.not.leapYear(2015);
    => true
     
    isit.all.leapYear(2015, 2016);
    => false
     
    isit.any.leapYear(2015, 2016);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.leapYear([2016, 2080]);
    => true

    isit.weekend(value:object)

    Checks if the given date objects' day is weekend.

    interfaces: not, all, any

    var monday = new Date('01/26/2015');
    var sunday = new Date('01/25/2015');
    var saturday = new Date('01/24/2015');
    isit.weekend(sunday);
    => true
     
    isit.weekend(monday);
    => false
     
    isit.not.weekend(monday);
    => true
     
    isit.all.weekend(sunday, saturday);
    => true
     
    isit.any.weekend(sunday, saturday, monday);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.weekend([sunday, saturday, monday]);
    => false

    isit.weekday(value:object)

    Checks if the given date objects' day is weekday.

    interfaces: not, all, any

    var monday = new Date('01/26/2015');
    var sunday = new Date('01/25/2015');
    var saturday = new Date('01/24/2015');
    isit.weekday(monday);
    => true
     
    isit.weekday(sunday);
    => false
     
    isit.not.weekday(sunday);
    => true
     
    isit.all.weekday(monday, saturday);
    => false
     
    isit.any.weekday(sunday, saturday, monday);
    => true
     
    // 'all' and 'any' interfaces can also take array parameter
    isit.all.weekday([sunday, saturday, monday]);
    => false

    isit.inDateRange(value:object, startObject, endObject)

    Checks if date is within given range.

    interface: not

    var saturday = new Date('01/24/2015');
    var sunday = new Date('01/25/2015');
    var monday = new Date('01/26/2015');
    isit.inDateRange(sunday, saturday, monday);
    => true
     
    isit.inDateRange(saturday, sunday, monday);
    => false
     
    isit.not.inDateRange(saturday, sunday, monday);
    => true

    isit.inLastWeek(value:object)

    Checks if the given date is between now and 7 days ago.

    interface: not

    var twoDaysAgo = new Date(new Date().setDate(new Date().getDate() - 2));
    var nineDaysAgo = new Date(new Date().setDate(new Date().getDate() - 9));
    isit.inLastWeek(twoDaysAgo);
    => true
     
    isit.inLastWeek(nineDaysAgo);
    => false
     
    isit.not.inLastWeek(nineDaysAgo);
    => true

    isit.inLastMonth(value:object)

    Checks if the given date is between now and a month ago.

    interface: not

    var tenDaysAgo = new Date(new Date().setDate(new Date().getDate() - 10));
    var fortyDaysAgo = new Date(new Date().setDate(new Date().getDate() - 40));
    isit.inLastMonth(tenDaysAgo);
    => true
     
    isit.inLastMonth(fortyDaysAgo);
    => false
     
    isit.not.inLastMonth(fortyDaysAgo);
    => true

    isit.inLastYear(value:object)

    Checks if the given date is between now and a year ago.

    interface: not

    var twoMonthsAgo = new Date(new Date().setMonth(new Date().getMonth() - 2));
    var thirteenMonthsAgo = new Date(new Date().setMonth(new Date().getMonth() - 13));
    isit.inLastYear(twoMonthsAgo);
    => true
     
    isit.inLastYear(thirteenMonthsAgo);
    => false
     
    isit.not.inLastYear(thirteenMonthsAgo);
    => true

    isit.inNextWeek(value:object)

    Checks if the given date is between now and 7 days later.

    interface: not

    var twoDaysLater = new Date(new Date().setDate(new Date().getDate() + 2));
    var nineDaysLater = new Date(new Date().setDate(new Date().getDate() + 9));
    isit.inNextWeek(twoDaysLater);
    => true
     
    isit.inNextWeek(nineDaysLater);
    => false
     
    isit.not.inNextWeek(nineDaysLater);
    => true

    isit.inNextMonth(value:object)

    Checks if the given date is between now and a month later.

    interface: not

    var tenDaysLater = new Date(new Date().setDate(new Date().getDate() + 10));
    var fortyDaysLater = new Date(new Date().setDate(new Date().getDate() + 40));
    isit.inNextMonth(tenDaysLater);
    => true
     
    isit.inNextMonth(fortyDaysLater);
    => false
     
    isit.not.inNextMonth(fortyDaysLater);
    => true

    isit.inNextYear(value:object)

    Checks if the given date is between now and a year later.

    interface: not

    var twoMonthsLater = new Date(new Date().setMonth(new Date().getMonth() + 2));
    var thirteenMonthsLater = new Date(new Date().setMonth(new Date().getMonth() + 13));
    isit.inNextYear(twoMonthsLater);
    => true
     
    isit.inNextYear(thirteenMonthsLater);
    => false
     
    isit.not.inNextYear(thirteenMonthsLater);
    => true

    isit.quarterOfYear(value:object, quarterNumber)

    Checks if the given date is in the parameter quarter.

    interface: not

    var firstQuarter = new Date('01/26/2015');
    var secondQuarter = new Date('05/26/2015');
    isit.quarterOfYear(firstQuarter, 1);
    => true
     
    isit.quarterOfYear(secondQuarter, 1);
    => false
     
    isit.not.quarterOfYear(secondQuarter, 1);
    => true

    isit.daylightSavingTime(value:object, quarterNumber)

    Checks if the given date is in daylight saving time.

    interface: not

    // For Turkey Time Zone
    var january1 = new Date('01/01/2015');
    var june1 = new Date('06/01/2015');
     
    isit.daylightSavingTime(june1);
    => true
     
    isit.daylightSavingTime(january1);
    => false
     
    isit.not.daylightSavingTime(january1);
    => true

    isit.daylightSavingsTime(value:object, quarterNumber)

    alias for isit.daylightSavingTime

    Configuration methods

    isit.setRegexp(value:RegExp, regexpString)

    Override RegExps if you think they suck.

    isit.url('https://www.duckduckgo.com');
    => true
     
    isit.setRegexp(/quack/, 'url');
    isit.url('quack');
    => true

    Install

    npm i isitjs

    DownloadsWeekly Downloads

    44

    Version

    2.3.3

    License

    MIT

    Unpacked Size

    637 kB

    Total Files

    19

    Last publish

    Collaborators

    • planttheidea