validator-rs
A comprehensive validation library for Rust that provides various validator functions for common data types and formats.
Features
- Email Validation: Validate email addresses with domain filtering
- URL Validation: Validate URLs, HTTPS-only URLs, and domain-specific URLs
- Phone Number Validation: Validate international phone numbers, US phone numbers, and country-code specific validation
- Credit Card Validation: Luhn algorithm validation and card type detection
- String Validation: Alphanumeric, alphabetic, numeric, length, and case validation
- Numeric Validation: Range checking, positive/negative validation, even/odd, multiples
- Date/Time Validation: ISO 8601 date and datetime validation, time validation, leap year checking
Installation
Add this to your Cargo.toml:
[]
= "0.1.0"
Usage
Email Validation
use ;
// Basic email validation
assert!;
assert!;
assert!;
// Email validation with allowed domains
assert!;
URL Validation
use ;
// Basic URL validation
assert!;
assert!;
// HTTPS-only validation
assert!;
assert!;
// Domain-specific validation
assert!;
Mobile Phone Number Validation
use ;
// Simple validation (any locale)
assert!;
assert!;
assert!;
// Validate with specific locale
assert!;
assert!;
// Validate with multiple locales
let locales = from;
assert!;
// Strict mode (must start with +)
let options = MobileOptions ;
assert!;
// Supported locales: 150+ countries including
// US, UK, France, Germany, India, Australia, Brazil, Japan, China, and many more
Credit Card Validation
use ;
// Luhn algorithm validation
assert!; // Valid Visa
assert!; // Invalid
// Card type detection
assert_eq!;
assert_eq!;
assert_eq!;
String Validation
use ;
// Character type validation
assert!;
assert!;
assert!;
// Length validation
assert!;
assert!;
assert!;
// Content validation
assert!;
assert!;
assert!;
Numeric Validation
use ;
// Range validation
assert!;
assert!;
assert!;
assert!;
// Mathematical properties
assert!;
assert!;
assert!;
// Floating point comparison
assert!;
Date/Time Validation
use ;
// Date validation (ISO 8601: YYYY-MM-DD)
assert!;
assert!; // Leap year
assert!; // Not a leap year
// Datetime validation (ISO 8601)
assert!;
assert!;
// Time validation (HH:MM:SS)
assert!;
assert!;
Module Structure
The library is organized into the following modules:
email- Email validation functionsurl- URL validation functionsmobile- Mobile phone number validation with locale support (150+ countries)credit_card- Credit card validation functionsstring- String content and format validationnumeric- Numeric value validationdate- Date and time validation functions
Re-exports
Commonly used validators are re-exported at the crate root for convenience:
use ;
Error Handling
The library also provides a ValidationError type for more structured error handling:
use ;
Testing
Run the test suite:
Run tests with documentation examples:
License
This project is available under your choice of license.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.