3.1.3 • Published 1 month ago

input-validify v3.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

📦 Validify

A lightweight and powerful JavaScript validation library for usernames, passwords, emails, numbers, dates, URLs, phone numbers, and more — now with standardized error codes for cleaner error handling.


🚀 Installation

Install the package using npm:

npm install input-validify

📥 Import & Usage

import Validify from "input-validify";

const vld = new Validify();

🔤 Username Validation

validateText(text, special = false, min = 2, max = 20, allowedSymbols = [])

Validates a text input such as a username by restricting special characters and setting length limits.

Parameters:

  • text: string — The input text to validate.
  • special: boolean — Allow special characters (true) or not (false).
  • min: number — Minimum character length.
  • max: number — Maximum character length.
  • allowedSymbols: string[] — Custom allowed special characters (optional).

Example:

vld.validateText("User_123", true, 2, 10, ['_', '-', '@']);

🔐 Password Validation

validatePassword(password, min = 6, max = 20, complexity = {})

Validates passwords for minimum/maximum length and character complexity.

Parameters:

  • password: string — The password to validate.
  • min: number — Minimum character length.
  • max: number — Maximum character length.
  • complexity: object — Complexity rules:
    • requireUppercase: boolean
    • requireLowercase: boolean
    • requireNumber: boolean
    • requireSpecialChar: boolean

Example:

vld.validatePassword("StrongPass123!", 8, 20, {
  requireUppercase: true,
  requireLowercase: true,
  requireNumber: true,
  requireSpecialChar: true,
});

📧 Email Validation

validateEmail(email, regex?)

Validates email format using default or custom regular expression.

Parameters:

  • email: string — Email address to validate.
  • regex: RegExp — Optional custom regex.

Example:

vld.validateEmail("example@email.com");

// With custom regex
vld.validateEmail("user@gmail.com", /^[a-z0-9._%+-]+@gmail\.com$/i);

🔢 Number Validation

validateNumber(number, min = 4, max = 20)

Validates number or numeric string length.

Parameters:

  • number: number|string — The number to validate.
  • min: number — Minimum length.
  • max: number — Maximum length.

Example:

vld.validateNumber(123456, 4, 10);

📅 Date Validation

validateDate(date, format)

Validates date string based on format.

Supported Formats:

  • YYYY-MM-DD
  • DD/MM/YYYY
  • MM/DD/YYYY
  • YYYY/MM/DD
  • YYYY-MM-DD HH:mm:ss
  • DD/MM/YYYY HH:mm:ss
  • MM/DD/YYYY HH:mm:ss
  • YYYY/MM/DD HH:mm:ss
  • YYYY-MM-DDTHH:mm:ss
  • YYYY-MM-DDTHH:mm:ss.SSS

Parameters:

  • date: string — The date string to validate.
  • format: string — The expected format.

Example:

vld.validateDate("2025-03-15", "YYYY-MM-DD");
vld.validateDate("15/03/2025 10:30:00", "DD/MM/YYYY HH:mm:ss");

🌐 URL Validation

validateUrl(url)

Validates if the string is a valid URL.

Parameters:

  • url: string — The URL to validate.

Example:

vld.validateUrl("https://example.com");

🔎 Regex Validation

validateWithRegex(value, regex)

Custom validation using regular expressions.

Parameters:

  • value: string — The value to validate.
  • regex: RegExp — The regular expression.

Example:

vld.validateWithRegex("abc123", /^[a-z0-9]+$/i);

☎️ Phone Number Validation

validatePhone(phoneNumber)

Validates phone numbers in various formats.

Parameters:

  • phoneNumber: string — The phone number to validate.

Example:

vld.validatePhone("+1 (123) 456-7890");
vld.validatePhone("123-456-7890");

❗ Error Handling

All methods throw Error objects with error codes instead of plain text messages, so you can handle errors more programmatically:

Example:

try {
  vld.validateText("");
} catch (err) {
  console.log(err.message); // Example: "ERR_TEXT_EMPTY"
}

📄 License

MIT License


👨‍💻 Author

Ali Abdullah
GitHub

3.1.3

1 month ago

3.1.1

1 month ago

3.1.0

1 month ago

3.0.0

1 month ago

2.0.0

1 month ago

1.6.0

2 months ago

1.5.0

2 months ago

1.4.0

2 months ago

1.3.0

2 months ago

1.2.0

2 months ago