Micro check library

Related tags

Validation is.js
Overview

is.js

JS.ORG

This is a general-purpose check library.

  • No dependencies
  • AMD, Node & browser ready

Usage:

Node.js:

npm install is_js

Bower:

bower install is_js

Build:

npm run build

Test:

npm test

Contributing:

Thanks for considering to contribute. Check here

Contributors:

Many thanks to our contributors: https://github.com/arasatasaygin/is.js/graphs/contributors

Type checks

is.arguments(value:any)

Checks if the given value type is arguments.

interfaces: not, all, any

var getArguments = function() {
    return arguments;
};
var arguments = getArguments();

is.arguments(arguments);
=> true

is.not.arguments({foo: 'bar'});
=> true

is.all.arguments(arguments, 'bar');
=> false

is.any.arguments(['foo'], arguments);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.arguments([arguments, 'foo', 'bar']);
=> false

is.array(value:any)

Checks if the given value type is array.

interfaces: not, all, any

is.array(['foo', 'bar', 'baz']);
=> true

is.not.array({foo: 'bar'});
=> true

is.all.array(['foo'], 'bar');
=> false

is.any.array(['foo'], 'bar');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.array([[1, 2], 'foo', 'bar']);
=> false

is.boolean(value:any)

Checks if the given value type is boolean.

interfaces: not, all, any

is.boolean(true);
=> true

is.not.boolean({foo: 'bar'});
=> true

is.all.boolean(true, 'bar');
=> false

is.any.boolean(true, 'bar');
=> true

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

is.date(value:any)

Checks if the given value type is date.

interfaces: not, all, any

is.date(new Date());
=> true

is.not.date({foo: 'bar'});
=> true

is.all.date(new Date(), 'bar');
=> false

is.any.date(new Date(), 'bar');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.date([new Date(), 'foo', 'bar']);
=> false

is.domNode(value:any)

Checks if the given object is a dom node.

interfaces: not, all, any

var obj = document.createElement('div');
is.domNode(obj);
=> true

is.domNode({nope: 'nope'});
=> false

is.not.domNode({});
=> true

is.all.domNode(obj, obj);
=> true

is.any.domNode(obj, {nope: 'nope'});
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.domNode([obj, {nope: 'nope'}]);
=> false

is.error(value:any)

Checks if the given value type is error.

interfaces: not, all, any

is.error(new Error());
=> true

is.not.error({foo: 'bar'});
=> true

is.all.error(new Error(), 'bar');
=> false

is.any.error(new Error(), 'bar');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.error([new Error(), 'foo', 'bar']);
=> false

is.function(value:any)

Checks if the given value type is function.

interfaces: not, all, any

is.function(toString);
=> true

is.not.function({foo: 'bar'});
=> true

is.all.function(toString, 'bar');
=> false

is.any.function(toString, 'bar');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.function([toString, 'foo', 'bar']);
=> false

is.nan(value:any)

Checks if the given value type is NaN.

interfaces: not, all, any

is.nan(NaN);
=> true

is.not.nan(42);
=> true

is.all.nan(NaN, 1);
=> false

is.any.nan(NaN, 2);
=> true

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

is.null(value:any)

Checks if the given value type is null.

interfaces: not, all, any

is.null(null);
=> true

is.not.null(42);
=> true

is.all.null(null, 1);
=> false

is.any.null(null, 2);
=> true

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

is.number(value:any)

Checks if the given value type is number.

interfaces: not, all, any

is.number(42);
=> true

is.number(NaN);
=> false

is.not.number('42');
=> true

is.all.number('foo', 1);
=> false

is.any.number({}, 2);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.number([42, 'foo', 1]);
=> false

is.object(value:any)

Checks if the given value type is object.

interfaces: not, all, any

is.object({foo: 'bar'});
=> true

// functions are also returning as true
is.object(toString);
=> true

is.not.object('foo');
=> true

is.all.object({}, 1);
=> false

is.any.object({}, 2);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.object([{}, new Object()]);
=> true

is.json(value:any)

Checks if the given value type is pure json object.

interfaces: not, all, any

is.json({foo: 'bar'});
=> true

// functions are returning as false
is.json(toString);
=> false

is.not.json([]);
=> true

is.all.json({}, 1);
=> false

is.any.json({}, 2);
=> true

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

is.regexp(value:any)

Checks if the given value type is RegExp.

interfaces: not, all, any

is.regexp(/test/);
=> true

is.not.regexp(['foo']);
=> true

is.all.regexp(/test/, 1);
=> false

is.any.regexp(new RegExp('ab+c'), 2);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.regexp([{}, /test/]);
=> false

is.string(value:any)

Checks if the given value type is string.

interfaces: not, all, any

is.string('foo');
=> true

is.not.string(['foo']);
=> true

is.all.string('foo', 1);
=> false

is.any.string('foo', 2);
=> true

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

is.char(value:any)

Checks if the given value type is char.

interfaces: not, all, any

is.char('f');
=> true

is.not.char(['foo']);
=> true

is.all.char('f', 1);
=> false

is.any.char('f', 2);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.char(['f', 'o', 'o']);
=> true

is.undefined(value:any)

Checks if the given value type is undefined.

interfaces: not, all, any

is.undefined(undefined);
=> true

is.not.undefined(null);
=> true

is.all.undefined(undefined, 1);
=> false

is.any.undefined(undefined, 2);
=> true

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

is.sameType(value:any, other:any)

Checks if the given value types are same type.

interface: not

is.sameType(42, 7);
=> true

is.sameType(42, '7');
=> false

is.not.sameType(42, 7);
=> false

is.windowObject(value:any)

Checks if the given object is window object.

interfaces: not, all, any

is.windowObject(window);
=> true

is.windowObject({nope: 'nope'});
=> false

is.not.windowObject({});
=> true

is.all.windowObject(window, {nope: 'nope'});
=> false

is.any.windowObject(window, {nope: 'nope'});
=> true

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

Presence checks

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

Checks if the given value is empty.

interfaces: not, all, any

is.empty({});
=> true

is.empty([]);
=> true

is.empty('');
=> true

is.not.empty(['foo']);
=> true

is.all.empty('', {}, ['foo']);
=> false

is.any.empty([], 42);
=> true

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

is.existy(value:any)

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

interfaces: not, all, any

is.existy({});
=> true

is.existy(null);
=> false

is.not.existy(undefined);
=> true

is.all.existy(null, ['foo']);
=> false

is.any.existy(undefined, 42);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.existy([{}, 'foo']);
=> true

is.truthy(value:any)

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

interfaces: not, all, any

is.truthy(true);
=> true

is.truthy(null);
=> false

is.not.truthy(false);
=> true

is.all.truthy(null, true);
=> false

is.any.truthy(undefined, true);
=> true

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

is.falsy(value:any)

Checks if the given value is falsy.

interfaces: not, all, any

is.falsy(false);
=> true

is.falsy(null);
=> true

is.not.falsy(true);
=> true

is.all.falsy(null, false);
=> true

is.any.falsy(undefined, true);
=> true

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

is.space(value:any)

Checks if the given value is space.

interfaces: not, all, any

is.space(' ');
=> true

is.space('foo');
=> false

is.not.space(true);
=> true

is.all.space(' ', 'foo');
=> false

is.any.space(' ', true);
=> true

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

RegExp checks

is.url(value:any)

Checks if the given value matches url regexp.

interfaces: not, all, any

is.url('http://www.test.com');
=> true

is.url('foo');
=> false

is.not.url(true);
=> true

is.all.url('http://www.test.com', 'foo');
=> false

is.any.url('http://www.test.com', true);
=> true

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

is.email(value:any)

Checks if the given value matches email regexp.

interfaces: not, all, any

is.email('[email protected]');
=> true

is.email('foo');
=> false

is.not.email('foo');
=> true

is.all.email('[email protected]', 'foo');
=> false

is.any.email('[email protected]', 'foo');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.email(['[email protected]', 'foo', undefined]);
=> false

is.creditCard(value:any)

Checks if the given value matches credit card regexp.

interfaces: not, all, any

is.creditCard(378282246310005);
=> true

is.creditCard(123);
=> false

is.not.creditCard(123);
=> true

is.all.creditCard(378282246310005, 123);
=> false

is.any.creditCard(378282246310005, 123);
=> true

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

is.alphaNumeric(value:any)

Checks if the given value matches alpha numeric regexp.

interfaces: not, all, any

is.alphaNumeric('alphaNu3er1k');
=> true

is.alphaNumeric('*?');
=> false

is.not.alphaNumeric('*?');
=> true

is.all.alphaNumeric('alphaNu3er1k', '*?');
=> false

is.any.alphaNumeric('alphaNu3er1k', '*?');
=> true

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

is.timeString(value:any)

Checks if the given value matches time string regexp.

interfaces: not, all, any

is.timeString('13:45:30');
=> true

is.timeString('90:90:90');
=> false

is.not.timeString('90:90:90');
=> true

is.all.timeString('13:45:30', '90:90:90');
=> false

is.any.timeString('13:45:30', '90:90:90');
=> true

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

is.dateString(value:any)

Checks if the given value matches date string regexp.

interfaces: not, all, any

is.dateString('11/11/2011');
=> true

is.dateString('10-21-2012');
=> true

is.dateString('90/11/2011');
=> false

is.not.dateString('90/11/2011');
=> true

is.all.dateString('11/11/2011', '90/11/2011');
=> false

is.any.dateString('11-11-2011', '90/11/2011');
=> true

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

is.usZipCode(value:any)

Checks if the given value matches US zip code regexp.

interfaces: not, all, any

is.usZipCode('02201-1020');
=> true

is.usZipCode('123');
=> false

is.not.usZipCode('123');
=> true

is.all.usZipCode('02201-1020', '123');
=> false

is.any.usZipCode('02201-1020', '123');
=> true

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

is.caPostalCode(value:any)

Checks if the given value matches Canada postal code regexp.

interfaces: not, all, any

is.caPostalCode('L8V3Y1');
=> true

is.caPostalCode('L8V 3Y1');
=> true

is.caPostalCode('123');
=> false

is.not.caPostalCode('123');
=> true

is.all.caPostalCode('L8V3Y1', '123');
=> false

is.any.caPostalCode('L8V3Y1', '123');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.caPostalCode(['L8V3Y1', '123']);
=> false

is.ukPostCode(value:any)

Checks if the given value matches UK post code regexp.

interfaces: not, all, any

is.ukPostCode('B184BJ');
=> true

is.ukPostCode('123');
=> false

is.not.ukPostCode('123');
=> true

is.all.ukPostCode('B184BJ', '123');
=> false

is.any.ukPostCode('B184BJ', '123');
=> true

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

is.nanpPhone(value:any)

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

interfaces: not, all, any

is.nanpPhone('609-555-0175');
=> true

is.nanpPhone('123');
=> false

is.not.nanpPhone('123');
=> true

is.all.nanpPhone('609-555-0175', '123');
=> false

is.any.nanpPhone('609-555-0175', '123');
=> true

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

is.eppPhone(value:any)

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

interfaces: not, all, any

is.eppPhone('+90.2322456789');
=> true

is.eppPhone('123');
=> false

is.not.eppPhone('123');
=> true

is.all.eppPhone('+90.2322456789', '123');
=> false

is.any.eppPhone('+90.2322456789', '123');
=> true

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

is.socialSecurityNumber(value:any)

Checks if the given value matches social security number regexp.

interfaces: not, all, any

is.socialSecurityNumber('017-90-7890');
=> true

is.socialSecurityNumber('017907890');
=> true

is.socialSecurityNumber('123');
=> false

is.not.socialSecurityNumber('123');
=> true

is.all.socialSecurityNumber('017-90-7890', '123');
=> false

is.any.socialSecurityNumber('017907890', '123');
=> true

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

is.affirmative(value:any)

Checks if the given value matches affirmative regexp.

interfaces: not, all, any

is.affirmative('yes');
=> true

is.affirmative('no');
=> false

is.not.affirmative('no');
=> true

is.all.affirmative('yes', 'no');
=> false

is.any.affirmative('yes', 'no');
=> true

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

is.hexadecimal(value:any)

Checks if the given value matches hexadecimal regexp.

interfaces: not, all, any

is.hexadecimal('f0f0f0');
=> true

is.hexadecimal('0xf0f0f0');
=> true

is.hexadecimal(2.5);
=> false

is.not.hexadecimal('string');
=> true

is.all.hexadecimal('ff', 'f50');
=> true

is.any.hexadecimal('0xff5500', true);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.hexadecimal(['fff', '333', 'f50']);
=> true

is.hexColor(value:any)

Checks if the given value matches hexcolor regexp.

interfaces: not, all, any

is.hexColor('#333');
=> true

is.hexColor('#3333');
=> false

is.not.hexColor(0.5);
=> true

is.all.hexColor('fff', 'f50');
=> true

is.any.hexColor('ff5500', 0.5);
=> false

// 'all' and 'any' interfaces can also take array parameter
is.all.hexColor(['fff', '333', 'f50']);
=> true

is.ip(value:any)

Checks if the given value matches ip regexp

interfaces: not, all, any

is.ip('198.156.23.5');
=> true

is.ip('1.2..5');
=> false

is.not.ip('8:::::::7');
=> true

is.all.ip('0:1::4:ff5:54:987:C', '123.123.123.123');
=> true

is.any.ip('123.8.4.3', '0.0.0.0');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.ip(['123.123.23.12', 'A:B:C:D:E:F:0:0']);
=> true

is.ipv4(value:any)

Checks if the given value matches ipv4 regexp

interfaces: not, all, any

is.ipv4('198.12.3.142');
=> true

is.ipv4('1.2..5');
=> false

is.not.ipv4('8:::::::7');
=> true

is.all.ipv4('198.12.3.142', '123.123.123.123');
=> true

is.any.ipv4('255.255.255.255', '850..1.4');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.ipv4(['198.12.3.142', '1.2.3']);
=> false

is.ipv6(value:any)

Checks if the given value matches ipv6 regexp

interfaces: not, all, any

is.ipv6('2001:DB8:0:0:1::1');
=> true

is.ipv6('985.12.3.4');
=> true

is.not.ipv6('8:::::::7');
=> true

is.all.ipv6('2001:DB8:0:0:1::1', '1:50:198:2::1:2:8');
=> true

is.any.ipv6('255.255.255.255', '2001:DB8:0:0:1::1');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.ipv6(['2001:DB8:0:0:1::1', '1.2.3']);
=> false

String checks

is.include(value:string, target:string)

Checks if the given string contains a substring.

interface: not

is.include('Some text goes here', 'text');
=> true

is.include('test', 'text');
=> false

is.not.include('test', 'text');
=> true

is.upperCase(value:string)

Checks if the given string is UPPERCASE.

interfaces: not, all, any

is.upperCase('YEAP');
=> true

is.upperCase('nope');
=> false

is.not.upperCase('Nope');
=> true

is.all.upperCase('YEAP', 'nope');
=> false

is.any.upperCase('YEAP', 'nope');
=> true

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

is.lowerCase(value:string)

Checks if the given string is lowercase.

interfaces: not, all, any

is.lowerCase('yeap');
=> true

is.lowerCase('NOPE');
=> false

is.not.lowerCase('Nope');
=> true

is.all.lowerCase('yeap', 'NOPE');
=> false

is.any.lowerCase('yeap', 'NOPE');
=> true

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

is.startWith(value:string, target:string)

Checks if the given string starts with substring.

interface: not

is.startWith('yeap', 'ye');
=> true

is.startWith('nope', 'ye');
=> false

is.not.startWith('nope not that', 'not');
=> true

is.endWith(value:string, target:string)

Checks if the given string ends with substring.

interfaces: not

is.endWith('yeap', 'ap');
=> true

is.endWith('nope', 'no');
=> false

is.not.endWith('nope not that', 'not');
=> true

is.endWith('yeap that one', 'one');
=> true

is.capitalized(value:string)

Checks if the given string is capitalized.

interfaces: not, all, any

is.capitalized('Yeap');
=> true

is.capitalized('nope');
=> false

is.not.capitalized('nope not capitalized');
=> true

is.not.capitalized('nope Capitalized');
=> true

is.all.capitalized('Yeap', 'All', 'Capitalized');
=> true

is.any.capitalized('Yeap', 'some', 'Capitalized');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.capitalized(['Nope', 'not']);
=> false

is.palindrome(value:string)

Checks if the given string is palindrome.

interfaces: not, all, any

is.palindrome('testset');
=> true

is.palindrome('A man, a plan, a canal - Panama!');
=> true

is.palindrome('nope');
=> false

is.not.palindrome('nope not palindrome');
=> true

is.not.palindrome('tt');
=> false

is.all.palindrome('testset', 'tt');
=> true

is.any.palindrome('Yeap', 'some', 'testset');
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.palindrome(['Nope', 'testset']);
=> false

Arithmetic checks

is.equal(value:any, other:any)

Checks if the given values are equal.

interfaces: not

is.equal(42, 40 + 2);
=> true

is.equal('yeap', 'yeap');
=> true

is.equal(true, true);
=> true

is.not.equal('yeap', 'nope');
=> true

is.even(value:number)

Checks if the given value is even.

interfaces: not, all, any

is.even(42);
=> true

is.not.even(41);
=> true

is.all.even(40, 42, 44);
=> true

is.any.even(39, 42, 43);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.even([40, 42, 43]);
=> false

is.odd(value:number)

Checks if the given value is odd.

interfaces: not, all, any

is.odd(41);
=> true

is.not.odd(42);
=> true

is.all.odd(39, 41, 43);
=> true

is.any.odd(39, 42, 44);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.odd([40, 42, 43]);
=> false

is.positive(value:number)

Checks if the given value is positive.

interfaces: not, all, any

is.positive(41);
=> true

is.not.positive(-42);
=> true

is.all.positive(39, 41, 43);
=> true

is.any.positive(-39, 42, -44);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.positive([40, 42, -43]);
=> false

is.negative(value:number)

Checks if the given value is negative.

interfaces: not, all, any

is.negative(-41);
=> true

is.not.negative(42);
=> true

is.all.negative(-39, -41, -43);
=> true

is.any.negative(-39, 42, 44);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.negative([40, 42, -43]);
=> false

is.above(value:number, min:number)

Checks if the given value is above minimum value.

interface: not

is.above(41, 30);
=> true

is.not.above(42, 50);
=> true

is.under(value:number, max:number)

Checks if the given value is under maximum value.

interface: not

is.under(30, 35);
=> true

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

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

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

interface: not

is.within(30, 20, 40);
=> true

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

is.decimal(value:number)

Checks if the given value is decimal.

interfaces: not, all, any

is.decimal(41.5);
=> true

is.not.decimal(42);
=> true

is.all.decimal(39.5, 41.5, -43.5);
=> true

is.any.decimal(-39, 42.5, 44);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.decimal([40, 42.5, -43]);
=> false

is.integer(value:number)

Checks if the given value is integer.

interfaces: not, all, any

is.integer(41);
=> true

is.not.integer(42.5);
=> true

is.all.integer(39, 41, -43);
=> true

is.any.integer(-39, 42.5, 44);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.integer([40, 42.5, -43]);
=> false

is.finite(value:number)

Checks if the given value is finite.

interfaces: not, all, any

is.finite(41);
=> true

is.not.finite(42 / 0);
=> true

is.all.finite(39, 41, -43);
=> true

is.any.finite(-39, Infinity, 44);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.finite([Infinity, -Infinity, 42.5]);
=> false

is.infinite(value:number)

Checks if the given value is infinite.

interfaces: not, all, any

is.infinite(Infinity);
=> true

is.not.infinite(42);
=> true

is.all.infinite(Infinity, -Infinity, -43 / 0);
=> true

is.any.infinite(-39, Infinity, 44);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.infinite([Infinity, -Infinity, 42.5]);
=> false

Object checks

is.propertyCount(value:object, count:number)

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

interface: not

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

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

is.not.propertyCount({}, 2);
=> true

is.propertyDefined(value:object, property:string)

Checks if the given property is defined on object.

interface: not

is.propertyDefined({yeap: 'yeap'}, 'yeap');
=> true

is.propertyDefined({yeap: 'yeap'}, 'nope');
=> false

is.not.propertyDefined({}, 'nope');
=> true

Array checks

is.inArray(value:any, array)

Checks if the given item is in array?

interface: not

is.inArray(2, [1, 2, 3]);
=> true

is.inArray(4, [1, 2, 3]);
=> false

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

is.sorted(value:array, sign:string)

Checks if the given array is sorted. Sign is optional parameter.

interfaces: not, all, any

is.sorted([1, 2, 3]);
=> true

is.sorted([1, 2, 4, 3]);
=> false

is.sorted([1, 1, 2, 2], '>=');
=> true

is.sorted([1, 2, 3, 4], '>');
=> true

is.sorted([4, 3, 3, 1], '<=');
=> true

is.sorted([4, 3, 2, 1], '<');
=> true

is.sorted([1, 2, 3, 3], '>');
=> false

is.not.sorted([5, 4, 3]);
=> true

is.not.sorted([5, 4, 3], '<');
=> false

is.all.sorted([1, 2], [3, 4]);
=> true

is.any.sorted([1, 2], [5, 4]);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.sorted([[1, 2], [5, 4]]);
=> false

Environment checks

Environment checks are not available as node module.

is.ie(range:number|string)

Checks if current browser is ie. Parameter is optional version range (or number) of browser.

interface: not

is.ie();
=> true if current browser is ie

is.not.ie();
=> false if current browser is ie

// also supports version number
is.ie(10);
=> true if current version of ie is 10

is.ie('>=10');
=> true if current version of ie is greater than or equal to 10

is.not.ie('<9');
=> true if current version of ie is not less than 9

is.chrome(range:number|string)

Checks if current browser is chrome. Parameter is optional version range (or number) of browser.

interface: not

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

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

// also supports version number
is.chrome(50);
=> true if current version of chrome is 50

is.chrome('>=40');
=> true if current version of chrome is greater than or equal to 40

is.not.chrome('<30');
=> true if current version of chrome is not less than 30

is.firefox(range:number|string)

Checks if current browser is firefox. Parameter is optional version range (or number) of browser.

interface: not

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

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

// also supports version number
is.firefox(41);
=> true if current version of firefox is 41

is.firefox('>=40');
=> true if current version of firefox is greater than or equal to 40

is.not.firefox('<30');
=> true if current version of firefox is not less than 30

is.edge(range:number|string)

Checks if current browser is edge. Parameter is optional version range (or number) of browser.

interface: not

is.edge();
=> true if current browser is edge

is.not.edge();
=> false if current browser is edge

// also supports version number
is.edge(13);
=> true if current version of edge is 13

is.edge('>=12');
=> true if current version of edge is greater than or equal to 12

is.not.edge('<13');
=> true if current version of edge is not less than 13

is.opera(range:number|string)

Checks if current browser is opera. Parameter is optional version range (or number) of browser.

interface: not

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

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

// also supports version number
is.opera(36);
=> true if current version of opera is 36

is.opera('>=35');
=> true if current version of opera is greater than or equal to 35

is.not.opera('<20');
=> true if current version of opera is not less than 20

is.safari(range:number|string)

Checks if current browser is safari. Parameter is optional version range (or number) of browser.

interface: not

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

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

// also supports version number
is.safari(9);
=> true if current version of safari is 9

is.safari('>=8');
=> true if current version of safari is greater than or equal to 8

is.not.safari('<7');
=> true if current version of safari is not less than 7

is.phantom(range:number|string)

Checks if current browser is phantomjs. Parameter is optional version range (or number) of browser.

interface: not

is.phantom();
=> true if current browser is phantomjs

is.not.phantom();
=> false if current browser is phantomjs

// also supports version number
is.phantom(2);
=> true if current version of phantom is 2

is.phantom('>=1');
=> true if current version of phantomjs is greater than or equal to 1

is.not.phantom('<2');
=> true if current version of phantomjs is not less than 2

is.ios()

Checks if current device has ios.

interface: not

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

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

is.iphone(range:number|string)

Checks if current device is iPhone. Parameter is optional version range (or number) of browser.

interface: not

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

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

// also supports version number
is.iphone(9);
=> true if current version of iPhone is 9

is.iphone('>=7');
=> true if current version of iPhone is greater than or equal to 7

is.not.iphone('<8');
=> true if current version of iPhone is not less than 8

is.ipad(range:number|string)

Checks if current device is iPad.

interface: not

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

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

// also supports version number
is.ipad(9);
=> true if current version of iPad is 9

is.ipad('>=7');
=> true if current version of iPad is greater than or equal to 7

is.not.ipad('<8');
=> true if current version of iPad is not less than 8

is.ipod(range:number|string)

Checks if current device is iPod.

interface: not

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

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

// also supports version number
is.ipod(7);
=> true if current version of iPod is 7

is.ipod('>=5');
=> true if current version of iPod is greater than or equal to 5

is.not.ipod('<5');
=> true if current version of iPod is not less than 5

is.android()

Checks if current device has Android.

interface: not

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

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

is.androidPhone()

Checks if current device is Android phone.

interface: not

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

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

is.androidTablet()

Checks if current device is Android tablet.

interface: not

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

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

is.blackberry()

Checks if current device is Blackberry.

interface: not

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

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

is.windowsPhone()

Checks if current device is Windows phone.

interface: not

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

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

is.windowsTablet()

Checks if current device is Windows tablet.

interface: not

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

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

is.windows()

Checks if current OS is Windows.

interface: not

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

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

is.mac()

Checks if current OS is Mac OS X.

interface: not

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

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

is.linux()

Checks if current OS is linux.

interface: not

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

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

is.desktop()

Checks if current device is desktop.

interface: not

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

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

is.mobile()

Checks if current device is mobile.

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

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

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

is.tablet()

Checks if current device is tablet.

interface: not iPad, Android Tablet, Windows Tablet

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

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

is.online()

Checks if current device is online.

interface: not

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

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

is.offline()

Checks if current device is offline.

interface: not

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

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

is.touchDevice()

Checks if current device supports touch.

interface: not

is.touchDevice();
=> true if current device supports touch

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

Time checks

is.today(value:date)

Checks if the given date object indicate today.

interfaces: not, all, any

var today = new Date();
is.today(today);
=> true

var yesterday = new Date(new Date().setDate(new Date().getDate() - 1));
is.today(yesterday);
=> false

is.not.today(yesterday);
=> true

is.all.today(today, today);
=> true

is.any.today(today, yesterday);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.today([today, yesterday]);
=> false

is.yesterday(value:date)

Checks if the given date object indicate yesterday.

interfaces: not, all, any

var today = new Date();
is.yesterday(today);
=> false

var yesterday = new Date(new Date().setDate(new Date().getDate() - 1));
is.yesterday(yesterday);
=> true

is.not.yesterday(today);
=> true

is.all.yesterday(yesterday, today);
=> false

is.any.yesterday(today, yesterday);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.yesterday([today, yesterday]);
=> false

is.tomorrow(value:date)

Checks if the given date object indicate tomorrow.

interfaces: not, all, any

var today = new Date();
is.tomorrow(today);
=> false

var tomorrow = new Date(new Date().setDate(new Date().getDate() + 1));
is.tomorrow(tomorrow);
=> true

is.not.tomorrow(today);
=> true

is.all.tomorrow(tomorrow, today);
=> false

is.any.tomorrow(today, tomorrow);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.tomorrow([today, tomorrow]);
=> false

is.past(value:date)

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));

is.past(yesterday);
=> true

is.past(tomorrow);
=> false

is.not.past(tomorrow);
=> true

is.all.past(tomorrow, yesterday);
=> false

is.any.past(yesterday, tomorrow);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.past([yesterday, tomorrow]);
=> false

is.future(value:date)

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));

is.future(yesterday);
=> false

is.future(tomorrow);
=> true

is.not.future(yesterday);
=> true

is.all.future(tomorrow, yesterday);
=> false

is.any.future(yesterday, tomorrow);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.future([yesterday, tomorrow]);
=> false

is.day(value:date, day:string)

Checks if the given date objects' day equal given dayString parameter.

interface: not

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

is.day(mondayObj, 'tuesday');
=> false

is.not.day(mondayObj, 'tuesday');
=> true

is.month(value:date, month:string)

Checks if the given date objects' month equal given monthString parameter.

interface: not

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

is.month(februaryObj, 'january');
=> false

is.not.month(februaryObj, 'january');
=> true

is.year(value:date, year:number)

Checks if the given date objects' year equal given yearNumber parameter.

interface: not

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

is.year(year2016, 2015);
=> false

is.not.year(year2016, 2015);
=> true

is.leapYear(value:number)

Checks if the given year number is a leap year

interfaces: not, all, any

is.leapYear(2016);
=> true

is.leapYear(2015);
=> false

is.not.leapYear(2015);
=> true

is.all.leapYear(2015, 2016);
=> false

is.any.leapYear(2015, 2016);
=> true

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

is.weekend(value:date)

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');
is.weekend(sunday);
=> true

is.weekend(monday);
=> false

is.not.weekend(monday);
=> true

is.all.weekend(sunday, saturday);
=> true

is.any.weekend(sunday, saturday, monday);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.weekend([sunday, saturday, monday]);
=> false

is.weekday(value:date)

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');
is.weekday(monday);
=> true

is.weekday(sunday);
=> false

is.not.weekday(sunday);
=> true

is.all.weekday(monday, saturday);
=> false

is.any.weekday(sunday, saturday, monday);
=> true

// 'all' and 'any' interfaces can also take array parameter
is.all.weekday([sunday, saturday, monday]);
=> false

is.inDateRange(value:date, start:date, end:date)

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');
is.inDateRange(sunday, saturday, monday);
=> true

is.inDateRange(saturday, sunday, monday);
=> false

is.not.inDateRange(saturday, sunday, monday);
=> true

is.inLastWeek(value:date)

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));
is.inLastWeek(twoDaysAgo);
=> true

is.inLastWeek(nineDaysAgo);
=> false

is.not.inLastWeek(nineDaysAgo);
=> true

is.inLastMonth(value:date)

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));
is.inLastMonth(tenDaysAgo);
=> true

is.inLastMonth(fortyDaysAgo);
=> false

is.not.inLastMonth(fortyDaysAgo);
=> true

is.inLastYear(value:date)

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));
is.inLastYear(twoMonthsAgo);
=> true

is.inLastYear(thirteenMonthsAgo);
=> false

is.not.inLastYear(thirteenMonthsAgo);
=> true

is.inNextWeek(value:date)

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));
is.inNextWeek(twoDaysLater);
=> true

is.inNextWeek(nineDaysLater);
=> false

is.not.inNextWeek(nineDaysLater);
=> true

is.inNextMonth(value:date)

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));
is.inNextMonth(tenDaysLater);
=> true

is.inNextMonth(fortyDaysLater);
=> false

is.not.inNextMonth(fortyDaysLater);
=> true

is.inNextYear(value:date)

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));
is.inNextYear(twoMonthsLater);
=> true

is.inNextYear(thirteenMonthsLater);
=> false

is.not.inNextYear(thirteenMonthsLater);
=> true

is.quarterOfYear(value:date, quarter:number)

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');
is.quarterOfYear(firstQuarter, 1);
=> true

is.quarterOfYear(secondQuarter, 1);
=> false

is.not.quarterOfYear(secondQuarter, 1);
=> true

is.dayLightSavingTime(value:date)

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');

is.dayLightSavingTime(june1);
=> true

is.dayLightSavingTime(january1);
=> false

is.not.dayLightSavingTime(january1);
=> true

Configuration methods

is.setNamespace()

Change namespace of library to prevent name collisions.

var customName = is.setNamespace();
customName.odd(3);
=> true

is.setRegexp(value:regexp, name:string)

Override RegExps if you think they suck.

is.url('https://www.duckduckgo.com');
=> true

is.setRegexp(/quack/, 'url');
is.url('quack');
=> true
Comments
  • Issue when requiring is.js with webpack

    Issue when requiring is.js with webpack

    Just came across a weird issue when trying to require is.js when using the module bundler webpack. In JavaScript I do:

    var is = require("is_js");
    

    When using webpack this causes webpack to freak out and give an error message like this:

    ERROR in ./~/is_js/is.js
    Module not found: Error: Cannot resolve module 'is' in C:\jonrh\isjs-webpack-bugExample\node_modules\is_js
     @ ./~/is_js/is.js 8:8-13:10
    

    I'm not entirely sure where the fault is but I suspect it has something to do with is.js and AMD module loading. Maybe even webpack.

    I created a repository with some sample code and documentation to reproduce this issue. Included in the repository is a very hacky way to prevent this issue.

    opened by jonrh 16
  • About the state of this project and an apology

    About the state of this project and an apology

    Hey, First of all, sorry for the absence and the inconvenience caused to you people. I mean it! I'm right now on a SE Asia trip and not actively coding. So, I'm contacting with some friends (of friends) who I trust about collaboration opportunities. If this doesn't work out, I'll try to contact with contributors as well. Thank you for the patience, interest and your heart.

    Cheers (⌐■_■)

    help wanted 
    opened by arasatasaygin 14
  • is.palindrome bug

    is.palindrome bug

    The is.palindrome function is not working on all strings. For example, the following string would work "madam" but this string would not "a santa at nasa". Since you are just reversing the string and doing a comparison.

    To fix this, one option would be to remove certain characters such as spaces and then do a comparison to that string: // check if string if(is.not.string(str)) { return false; } // remove special chars var newStringReplaced = str.replace(/[^A-Z0-9]/ig, "").toLowerCase(); // reverse new string var newStringReversed = newStringReplaced.split('').reverse().join(''); // make comparison return newStringReplaced === newStringReversed

    bug 
    opened by gabbaca 12
  • unexpected behavior in regex-based checks for undefined

    unexpected behavior in regex-based checks for undefined

    console.log(is.ip(undefined));
    
    true
    

    That threw me for a bit. The workaround is is.existy before is.ip but that seems kind of inelegant. Is this by design?

    bug 
    opened by fluxsauce 11
  • Added .gitattributes file &

    Added .gitattributes file & "is.ip() is.ipv4 & is.ipv6()" methods

    Its a good practice to include .gitattributes file. You can know the reason here https://help.github.com/articles/dealing-with-line-endings/ Since the repository is becoming popular nd popular I highly recommend you to merge this. Also refreash the repository after merging .gitattributes. This link will help you https://help.github.com/articles/dealing-with-line-endings/#refreshing-a-repository-after-changing-line-endings

    opened by ihopepeace 11
  • isUTC

    isUTC

    hey, in my project i need this everytime. do you think it would fit in your lib? :)

    isUTC: function(UTC) {
                var now = new Date();
                if (UTC >= new Date(now.getTime() + now.getTimezoneOffset() * 60000))
                    return false;
                else
                    return true;
            }
    
    enhancement votes needed 
    opened by ericrange 11
  • Improvement Suggestion: Seperating checks into different files to maintain easily.

    Improvement Suggestion: Seperating checks into different files to maintain easily.

    Seperating checks to the folder and file structures and compiling them may make the project easier to maintain and more modular.

    checks/
        type/
             - array.js
             - arguments.js
             ...
        env/
            - android.js
            - ipad.js
            ...
    

    It will make the codebase easier for someone to add new checks without breaking the core.

    wontfix change 
    opened by f 9
  • typeof NaN is 'number'

    typeof NaN is 'number'

    // is a given value number?
    is.number = function(value) {
        return toString.call(value) === '[object Number]';
    };
    

    should be is.number = function(value) { return toString.call(value) === '[object Number]' && !isNaN(value); };
    ???

    opened by chenxianliang 7
  • improving is.truthy and is.falsy combination

    improving is.truthy and is.falsy combination

    Current implementation:

    is.truthy(value) => !!value;
    is.falsy(value)  => !!!value;
    

    Improvised

    is.falsy(value)  => !value;
    is.truthy(value) => !!value;
    
    enhancement 
    opened by ironmaniiith 6
  • is.url does not accept valid characters (?, +, %) and allow white spaces

    is.url does not accept valid characters (?, +, %) and allow white spaces

    is.url("foo.com bar") // true
    is.url("foo.com/something.php?foo=bar") // false
    is.url("foo.com/something%20else.php") // false
    is.url("foo.com/page.php?foo=one+two") // false
    

    Is this a desired behaviour?

    opened by marqu3z 6
  • Checking file extensions?

    Checking file extensions?

    Hey @arasatasaygin what do you think about adding some methods to check file extensions? like: is.image is.pdf is.excel is.extension

    I'll implement is.image tomorrow

    opened by vrunoa 6
  • Vulnerability

    Vulnerability

    https://ossindex.sonatype.org/component/pkg:npm/[email protected]?utm_source=dependency-check&utm_medium=integration&utm_content=7.4.3

    image

    References: CONFIRM - https://securitylab.github.com/advisories/GHSL-2020-295-redos-is.js MISC - https://github.com/arasatasaygin/is.js/issues/320 OSSINDEX - [CVE-2020-26302] CWE-1333 OSSIndex - http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-26302 OSSIndex - https://github.com/arasatasaygin/is.js/issues/320 OSSIndex - https://securitylab.github.com/advisories/GHSL-2020-295-redos-is.js/

    opened by PraveenAnaparthi 0
  • Correct check if is edge

    Correct check if is edge

    For Example navigator.userAgent return 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55' Edg without e on the end

    opened by jakubbuszynski 2
  • Contributing new features?

    Contributing new features?

    I worked on this project a little bit in the past and would like to create more PRs, but there hasn't been much activity in the last couple years. If I fix some bugs and write some features is someone available to review them for merge?

    opened by fslone 2
  • Trying to get in touch regarding a security issue

    Trying to get in touch regarding a security issue

    Hey there!

    I'd like to report a security issue but cannot find contact instructions on your repository.

    If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

    Thank you for your consideration, and I look forward to hearing from you!

    (cc @huntr-helper)

    opened by zidingz 8
  • Security Issue: Request for contact

    Security Issue: Request for contact

    Hello,

    The GitHub Security Lab team has found a potential vulnerability in your project. Please create a Security Advisory and invite me in to further disclose and discuss the vulnerability details and potential fix. Alternatively, please add a Security Policy containing a security email address to send the details to.

    Kind regards, A

    opened by pwntester 5
jQuery Validation Plugin library sources

jQuery Validation Plugin - Form validation made easy The jQuery Validation Plugin provides drop-in validation for your existing forms, while making al

null 10.3k Jan 3, 2023
Lightweight JavaScript form validation library inspired by CodeIgniter.

validate.js validate.js is a lightweight JavaScript form validation library inspired by CodeIgniter. Features Validate form fields from over a dozen r

Rick Harrison 2.6k Dec 15, 2022
FieldVal - multipurpose validation library. Supports both sync and async validation.

FieldVal-JS The FieldVal-JS library allows you to easily validate data and provide readable and structured error reports. Documentation and Examples D

null 137 Sep 24, 2022
jQuery Validation Plugin library sources

jQuery Validation Plugin - Form validation made easy The jQuery Validation Plugin provides drop-in validation for your existing forms, while making al

null 10.3k Jan 3, 2023
jQuery library to validate html forms. compatible with bootstrap v4 and bootstrap v3

jQuery form validation jQuery form validation is a library that helps you to validate your HTML form, it's completable with both Bootstrap 3 and Boots

Bassam Nabriss 33 Jun 10, 2021
The most powerful data validation library for JS

joi The most powerful schema description language and data validator for JavaScript. Installation npm install joi Visit the joi.dev Developer Portal f

Sideway Inc. 19.6k Jan 4, 2023
Lightweight and powerfull library for declarative form validation

Formurai is a lightweight and powerfull library for declarative form validation Features Setup Usage Options Methods Rules Examples Roadmap Features ?

Illia 49 May 13, 2022
Jquery.Circle.js - Circle is a Javascript global-menu library for jQuery.

Circle About Circle is a Javascript global-menu library for jQuery. Read more at the website: http://uc.gpgkd906.com/ Installation Just include the Ja

陈瀚 3 Jul 19, 2021
A simple credit cards validation library in JavaScript

creditcard.js A simple credit cards validation library in JavaScript. Project website: https://contaazul.github.io/creditcard.js Install creditcard.js

ContaAzul 323 Jan 7, 2023
v8n ☑️ ultimate JavaScript validation library

The ultimate JavaScript validation library you've ever needed. Dead simple fluent API. Customizable. Reusable. Installation - Documentation - API Intr

Bruno C. Couto 4.1k Dec 30, 2022
A lightweight NodeJS library for strict mime-type validation on streams

A lightweight NodeJS library for strict mime-type validation on streams. It gets a ReadableStream and decets the mime-type using its Magic number and validates it using the provided allowed and forbidden lists; If it's allowed it will pass it to the created WritableStreams and if it's not it will throw an error.

CEO of Death Star 9 Apr 3, 2022
A library for validate a string using regular expressions.

Fogex Form Regex Quickly and easily check if the content is valid. Installation npm install fogex or yarn add fogex Usage import fogex from 'fogex';

null 5 May 5, 2022
A library that generates OpenAPI (Swagger) docs from Zod schemas

Zod to OpenAPI A library that uses zod schemas to generate an Open API Swagger documentation. Purpose and quick example Usage Installation The openapi

Astea Solutions 130 Dec 30, 2022
A simple library to validate Mexican CURPs (Personal ID)

Validate CURP A simple and lightweight library to validate Mexican CURPs (Personal ID). Install NodeJS Use NPM: $ npm install --save validate-curp Or

Manuel de la Torre 15 Nov 24, 2022
Themis is a validation and processing library that helps you always make sure your data is correct.

Dataffy Themis - The advanced validation library Themis is a validation and processing library that helps you always make sure your data is correct. ·

Dataffy 14 Oct 27, 2022
Micro.publish is an Obsidian plugin to publish notes directly to Micro.blog, written in TypeScript

Micro.publish Micro.publish is a community maintained plugin for Obsidian to publish notes to a Micro.blog blog. Installing This plugin will be availa

Otavio Cordeiro 14 Dec 9, 2022
Micro check library

is.js This is a general-purpose check library. No dependencies AMD, Node & browser ready Usage: Node.js: npm install is_js Bower: bower install is_js

aras 9.2k Dec 27, 2022
Check ipo allotment result from CLI. [WIP for bulk check]

# Check your ipo allotment result via CLI Install node js and run these commands > clone the repo > cd checkipo-cli > npm

Yaman Sarabariya 4 Oct 12, 2022
A mobile web application to check the data on the total covid19 confirmed cases and deaths, check data for all countries with recorded cases.

This is a mobile web application to check the data on the total covid19 confirmed cases and deaths, check data for all countries with recorded cases. It also has a details page to check for the statistics for each region/state if available.

Solomon Hagan 7 Jul 30, 2022
A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.

keymaster.js Keymaster is a simple micro-library for defining and dispatching keyboard shortcuts in web applications. It has no dependencies. It’s a w

Thomas Fuchs 6.5k Jan 4, 2023