# arasatasaygin/is.js

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/arasatasaygin-is-js).**

9,078 stars · 616 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/arasatasaygin/is.js
- Homepage: http://is.js.org
- awesome-repositories: https://awesome-repositories.com/repository/arasatasaygin-is-js.md

## Description

is.js is a JavaScript validation library and data type checker. It provides a suite of utilities to verify whether variables are primitives, arrays, functions, or specific object types.

The project allows for the implementation of custom validation logic and the use of naming namespaces to override default rules and regular expressions.

It covers a broad range of validation capabilities, including numeric arithmetic properties, date and time analysis for relative and absolute ranges, and string format verification for patterns such as emails, URLs, and IP addresses. The library also includes environment detection utilities to identify browser versions, operating systems, and network connectivity status.

## Tags

### Part of an Awesome List

- [Runtime Type Checkers](https://awesome-repositories.com/f/awesome-lists/devtools/runtime-type-checkers.md) — Verifies if variables are primitives, arrays, functions, or specific object types during program execution.
- [Date Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/date-utilities.md) — Provides utilities to determine if dates are today, in the future, or within specific relative ranges.
- [String Manipulation and Analysis](https://awesome-repositories.com/f/awesome-lists/devtools/string-manipulation-and-analysis.md) — Analyzes string content for substrings, casing, capitalization, and palindrome properties. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [Form Validation](https://awesome-repositories.com/f/awesome-lists/devtools/form-validation.md) — Type and data validation utility.
- [Type Checking](https://awesome-repositories.com/f/awesome-lists/devtools/type-checking.md) — Micro-library for type checking.

### Programming Languages & Runtimes

- [Runtime Type Checkers](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-type-checkers.md) — Determines variable categories by comparing runtime values against primitive, array, and object type definitions.
- [JavaScript Utility Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/javascript-utility-libraries.md) — Offers a comprehensive set of helper functions for data type and pattern validation in JavaScript.

### Data & Databases

- [Date and Time Libraries](https://awesome-repositories.com/f/data-databases/date-and-time-libraries.md) — Provides utilities to check if a date is today, yesterday, in the past, future, or on a weekend. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))

### Development Tools & Productivity

- [Type Checking Integrations](https://awesome-repositories.com/f/development-tools-productivity/command-line-development-environments/type-checking-integrations.md) — Provides runtime type checking to ensure variables match expected JavaScript data types and structures.
- [Date and Time Utilities](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities.md) — Calculates if a given date falls on a weekend, within a specific range, or relative to today.
- [Temporal Range Verifiers](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/relative-date-formatting/temporal-range-verifiers.md) — Determines if a date falls within a specific range or within a relative window like the last week. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [Temporal Offset Calculations](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/calendar-date-calculations/temporal-offset-calculations.md) — Analyzes temporal relationships by comparing timestamps with calculated offsets for days, weeks, or months.

### Scientific & Mathematical Computing

- [Numeric Property Validators](https://awesome-repositories.com/f/scientific-mathematical-computing/numeric-property-validators.md) — Evaluates if a number is even, odd, positive, negative, integer, decimal, or falls within a specific range. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))

### Software Engineering & Architecture

- [Boolean Predicates](https://awesome-repositories.com/f/software-engineering-architecture/boolean-predicates.md) — Provides functions that evaluate input properties against criteria to return boolean results for validation.
- [Data Type Validation](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation/data-type-validation.md) — Checks that a runtime value matches a specific type to ensure data conforms to expected structures. ([source](https://github.com/arasatasaygin/is.js/blob/master/bower.json))
- [Regex Pattern Validators](https://awesome-repositories.com/f/software-engineering-architecture/regex-pattern-validators.md) — Validates strings against predefined regular expression patterns to identify emails, URLs, and other specific formats.
- [Runtime Value Validation](https://awesome-repositories.com/f/software-engineering-architecture/runtime-value-validation.md) — Determines if a value is empty, exists, or is truthy or falsy across different data types. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [String Validation and Normalization](https://awesome-repositories.com/f/software-engineering-architecture/string-validation-and-normalization.md) — Verifies that strings match standard formats such as emails, URLs, and IP addresses.
- [Environment Detection](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-architectures/environment-detection.md) — Implements logic for identifying browser, operating system, and network environments.
- [Custom Validation Rules](https://awesome-repositories.com/f/software-engineering-architecture/custom-validation-rules.md) — Allows overriding default validation rules and regular expressions via customizable naming namespaces. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [Object Property Inspectors](https://awesome-repositories.com/f/software-engineering-architecture/object-property-inspectors.md) — Checks for the existence of specific properties or verifies the total count of properties in an object. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [String Manipulation Utilities](https://awesome-repositories.com/f/software-engineering-architecture/string-manipulation-utilities.md) — Analyzes text for specific properties like casing, palindromes, or substrings to perform conditional logic.

### Web Development

- [Frontend Input Validators](https://awesome-repositories.com/f/web-development/frontend-input-validators.md) — Verifies that user input strings match specific formats like emails, URLs, and phone numbers before processing.
- [String Format Validators](https://awesome-repositories.com/f/web-development/string-format-validators.md) — Verifies if a string matches specific patterns such as emails, URLs, credit cards, IP addresses, or phone numbers. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [Browser Environment Monitors](https://awesome-repositories.com/f/web-development/browser-environment-monitors.md) — Identifies the current browser and verifies versioning to adapt application behavior. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [Capability Detection Engines](https://awesome-repositories.com/f/web-development/capability-detection-engines.md) — Determines runtime environment capabilities, including network connectivity status and touch input support. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [Client Device Detection](https://awesome-repositories.com/f/web-development/client-device-detection.md) — Identifies the user's browser version, operating system, and network status to adapt website behavior.
- [Device and OS Detectors](https://awesome-repositories.com/f/web-development/device-and-os-detectors.md) — Detects and classifies the operating system and device type from the runtime environment. ([source](https://github.com/arasatasaygin/is.js/blob/master/README.md))
- [User Agent Parsers](https://awesome-repositories.com/f/web-development/user-agent-parsers.md) — Identifies browser and operating system versions by analyzing raw environment metadata.
