smart_validator_india 0.1.1
smart_validator_india: ^0.1.1 copied to clipboard
A comprehensive Dart + Flutter validation package.
smart_validator #
A comprehensive validation package for Dart & Flutter.
Supports: Email, Phone, Password, GST, PAN, Aadhaar, URL, IP Address, Credit Card, and UPI ID validation — including India-specific validators.
Features #
| Validator | What it checks |
|---|---|
EmailValidator |
Valid email format |
PhoneValidator |
Indian & international phone numbers |
PasswordValidator |
Strength, rules, match check |
IndiaValidator |
GST, PAN, Aadhaar |
UrlValidator |
HTTP/HTTPS URLs |
IpValidator |
IPv4 and IPv6 addresses |
CreditCardValidator |
Luhn algorithm + card type detection |
UpiValidator |
UPI ID format + known handles |
Installation #
Add this to your pubspec.yaml:
dependencies:
smart_validator: ^0.0.1
Then run:
flutter pub get
Usage #
import 'package:smart_validator/smart_validator.dart';
Email #
EmailValidator.isValid("test@gmail.com"); // true
EmailValidator.isValid("invalid"); // false
// With result message
final result = EmailValidator.validate("test@gmail.com");
print(result.isValid); // true
print(result.message); // "Valid email address"
// As Flutter form validator
TextFormField(
validator: EmailValidator.formValidator(),
)
Phone (Indian) #
PhoneValidator.isValidIndian("9876543210"); // true
PhoneValidator.isValidIndian("1234567890"); // false
TextFormField(
validator: PhoneValidator.formValidator(),
)
Password #
PasswordValidator.isStrong("Pass@1234"); // true
PasswordValidator.isStrong("password"); // false
// Check strength
PasswordValidator.getStrength("Pass@1234"); // PasswordStrength.strong
// Match two passwords
PasswordValidator.passwordsMatch("Pass@123", "Pass@123"); // true
Indian GST, PAN, Aadhaar #
IndiaValidator.isValidGST("27AAAPZ2323J1ZW"); // true
IndiaValidator.isValidPAN("ABCDE1234F"); // true
IndiaValidator.isValidAadhaar("234123412341"); // true
TextFormField(validator: IndiaValidator.gstFormValidator())
TextFormField(validator: IndiaValidator.panFormValidator())
TextFormField(validator: IndiaValidator.aadhaarFormValidator())
URL #
UrlValidator.isValid("https://flutter.dev"); // true
UrlValidator.isSecure("https://flutter.dev"); // true
UrlValidator.isSecure("http://flutter.dev"); // false
IP Address #
IpValidator.isValidIPv4("192.168.1.1"); // true
IpValidator.isValidIPv6("2001:0db8:85a3:0000:0000:8a2e:0370:7334"); // true
IpValidator.isValid("192.168.1.1"); // true (v4 or v6)
Credit Card #
CreditCardValidator.isValid("4111111111111111"); // true (Luhn check)
CreditCardValidator.getCardType("4111111111111111"); // CardType.visa
UPI ID #
UpiValidator.isValid("name@okaxis"); // true
UpiValidator.isKnownHandle("name@paytm"); // true
UpiValidator.isKnownHandle("name@xyz"); // false
ValidationResult #
Every validator has a .validate() method returning a ValidationResult:
final result = EmailValidator.validate("bad-email");
print(result.isValid); // false
print(result.message); // "Enter a valid email address"
Flutter Form Integration #
Every validator has a .formValidator() method for direct use in TextFormField:
TextFormField(
validator: EmailValidator.formValidator(
errorMessage: "Please enter your email", // optional custom message
),
)
License #
MIT License. See LICENSE for details.