roxvalidator
v1.0.7
Published
Lightweight universal data validation library
Maintainers
Readme
🧩 roxvalidator
roxvalidator is a lightweight and flexible JavaScript validation library for common form fields.
Easily validate email, password, phone, username, URL, date, and more with simple, built-in functions.
Installation
npm install roxvalidator
```yarn
yarn add roxvalidator
📘 Importing
import roxvalidator from "roxvalidator";
🧠 Features
✅ Validate common form fields easily
✅ Works in frontend and backend
✅ Returns success status and messages, no alerts triggered internally
✅ Default rules provided, can be overridden
✅ Lightweight and dependency-free
| Function | Description |
| ------------------------------- | --------------------------------------------------------------------- |
| `checkEmail(value, options)` | Validates email (default: Gmail only) |
| `checkPassword(value, options)` | Checks password strength (uppercase, lowercase, number, special char) |
| `checkPhone(value, options)` | Validates international phone numbers |
| `checkUsername(value, options)` | Validates username (3–20 chars, letters/numbers/underscore) |
| `checkUrl(value, options)` | Validates URLs (http/https) |
| `checkDate(value, options)` | Validates date (YYYY-MM-DD) |
| `checkRequired(value, message)` | Checks if a field is empty or undefined |
🧪 Usage Examples
✅ Email Validation
const result = roxvalidator.checkEmail("[email protected]");
console.log(result);
// { success: true }
❌ Invalid Email
const result = roxvalidator.checkEmail("[email protected]");
console.log(result);
// { success: false, message: "Email must be a valid Gmail address" }
✅ Password Validation
const result = roxvalidator.checkPassword("Hello@123");
console.log(result);
// { success: true }
❌ Invalid Password
const result = roxvalidator.checkPassword("hello");
console.log(result);
// { success: false, message: "Password must be at least 6 characters long and include uppercase, lowercase, number, and special character" }
✅ Phone Validation
const result = roxvalidator.checkPhone("+919876543210");
console.log(result);
// { success: true }
✅ Username Validation
const result = roxvalidator.checkUsername("rohit_123");
console.log(result);
// { success: true }
✅ URL Validation
const result = roxvalidator.checkUrl("https://example.com");
console.log(result);
// { success: true }
✅ Date Validation
const result = roxvalidator.checkDate("2025-10-23");
console.log(result);
// { success: true }
✅ Required Field Check
const result = roxvalidator.checkRequired("");
console.log(result);
// { success: false, message: "This field is required" }
⚙️ Custom Rules
Override default validation rules with the options parameter:
const result = roxvalidator.checkEmail("[email protected]", {
regex: /^[^\s@]+@yahoo\.com$/,
message: "Only Yahoo emails are allowed"
});
🧩 Example Integration
const response = roxvalidator.checkPhone("+919876543210");
if (!response.success) {
alert(response.message);
}
📦 Default Rules Summary
| Field | Rule | Description |
| ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| **Email** | `/^[^\s@]+@gmail\.com$/` | Gmail addresses only |
| **Password** | `/(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#$%^&+=!]).{6,}/` | At least 6 chars, uppercase, lowercase, number, special char |
| **Phone** | `/^\+?[1-9]\d{1,14}$/` | International phone numbers |
| **Username** | `/^[a-zA-Z0-9_]{3,20}$/` | 3–20 chars, letters/numbers/underscore |
| **URL** | `/^(https?:\/\/)?([\w\d-]+\.)+[\w\d-]+(\/[\w\d-./?%&=]*)?$/` | Valid http/https URLs |
| **Date** | `/^\d{4}-\d{2}-\d{2}$/` | Must be in `YYYY-MM-DD` format |
🪪 License
ISC © 2025 Rohit Sharma
🌟 Contribute
Want to improve roxvalidator?
Fork the repo
Add features or fix bugs
Submit a Pull Request 💡
🔗 Links
NPM: https://www.npmjs.com/package/roxvalidator
GitHub: https://github.com/rohit-2k5/roxvalidator