best_form_validator
Zero-initialization Flutter form validation: email, url, phone (52 countries, local & international formats), password strength, Unicode names, age, date, strict time, credit card (Luhn), IBAN (MOD-97), MultiValidator chaining, and 25-language localization.
What this package is like to depend on
Last release 1 months ago
21 Jul 2026
Ships unpredictably
gaps range from 8 days to 1.5 years
Nearly every release is documented
notes for 12 of 12 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
12 releases · first in 2024
8 releases in the last 12 months
see the full history below
Release timeline
12 releases · Jul 2024 to Jul 2026
2025
2026
Releases
latest 12-
1.4.021 Jul 2026Release notes
Open source →New Features
Validators.validateUrl()— validates HTTP/HTTPS URLs with a proper scheme and host. Supports optional fields (isRequired: false), custom schemes, andallowMissingSchemeto accept bare domains likeexample.com.UrlValidator— exported publicly for direct use alongside theValidatorsfaçade.
Localization
- URL validator error messages are fully localized in all 25 supported languages (
urlRequired,invalidUrl).
Documentation
- README updated with URL validation usage and API reference.
- Example app updated with a URL Validation showcase case.
Test Coverage
- Added URL validator tests covering required/optional fields, scheme checks, localhost, IPv4, paths, whitespace trimming, and custom error messages.
-
1.3.008 Jul 2026Release notes
Open source →Bug Fixes
validateTime(HIGH) — replacedDateTime.parsewith a strict regex (^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d))?$). Invalid times like25:99:99now correctly return an error. AcceptsHH:mmandHH:mm:ss.validatePhonelocal formats (HIGH) — phone numbers in national/local format (e.g.03001234567for Pakistan,07911123456for UK) are now automatically normalized to international format before validation. No extra developer code needed.validatePhoneGB/UK alias (MEDIUM) — both'GB'(ISO 3166-1 standard) and'UK'(legacy alias) are now accepted for the United Kingdom. Integrating any standard country-picker package no longer requires manual mapping.validateNameUnicode support (MEDIUM) — the name validator now accepts any Unicode letter script: Latin, Arabic, Urdu, Hindi (Devanagari), Chinese (CJK), Japanese (Hiragana/Katakana), Korean (Hangul), and accented characters. Hyphens and apostrophes are allowed within tokens (e.g.Mary-Jane,O'Brien).
New Public API
FinancialValidators—validateCreditCard()andvalidateIBAN()are now exported from the public barrel (best_form_validator.dart). Previously only accessible via internal imports.MultiValidator— exported publicly. Chain any number of validators; returns the first error.PhoneInputFormatter— exported publicly. Auto-spaces phone numbers as the user types.Validators.validateCreditCard()— convenience façade forFinancialValidators.validateCreditCard().Validators.validateIBAN()— convenience façade forFinancialValidators.validateIBAN().Validators.normalizePhone()— converts a local phone number string to international format for a given ISO code.
Localization
- Financial validator error messages are now fully localized in all 25 supported languages (
creditCardRequired,invalidCreditCard,ibanRequired,invalidIban).
Documentation Fixes
- Removed stale
await Validators.loadPhoneRegex()from all doc comments and examples — this call has been a no-op since v1.2.0. - Corrected
CHANGELOGv1.2.0 entry:getPasswordStrength()is onPasswordValidator, notValidators. - README completely rewritten: accurate examples for all validators, correct install version, local phone format examples, financial and MultiValidator documentation.
Test Coverage
- Official test suite expanded from 12 tests to 107 tests covering every validator, edge cases, Unicode names, local phone normalization, GB/UK alias, strict time, financial validators, MultiValidator, PhoneInputFormatter, and localization.
Maintenance
- Removed dead
assets/countries_phone_regex.json(4 KB, unused since v1.2.0). - Improved
pubspec.yamldescription to accurately reflect all features.
-
1.2.011 Mar 2026Release notes
Open source →Huge Performance & Feature Upgrade 🚀
- Zero-Initialization Hook: Phone Regex patterns are now statically compiled. You no longer need to
await Validators.loadPhoneRegex()in yourmain(). Phone validation runs entirely synchronously! - Multi Validator: Added
MultiValidatorto allow chaining multiple validations sequentially. - Financial Validation: Added new
FinancialValidatorsto support Credit Cards (Luhn Algorithm Mod-10) and IBAN checks (MOD-97). - Password Strength: Added
PasswordValidator.getPasswordStrength()which evaluates text entropy and returns anintscore ranging from0to5. - Advanced Formatting: Added
PhoneInputFormatterwhich intelligently auto-formats international phone numbers as the user types. - Async Validations: Added
AsyncValidatorutility helper. - Over 25+ Language Localizations inherently patched to natively handle detailed password checks.
- Zero-Initialization Hook: Phone Regex patterns are now statically compiled. You no longer need to
-
1.1.429 Jan 2026Release notes
Open source →Maintenance
- Minor documentation improvements.
- Updated dependencies.
- Updated the ReadMe.
-
1.1.321 Jan 2026Release notes
Open source →Maintenance
- Updated pubspec metadata for better pub.dev compliance.
- Fixed repository, homepage, and issue tracker URLs.
- Improved CHANGELOG consistency.
- Standardized Dart file conventions and documentation.
-
1.1.220 Jan 2026 -
1.1.112 Jan 2026Release notes
Open source →Maintenance
- Updated pubspec metadata for better pub.dev compliance.
- Shortened package description.
- Updated license file to standard MIT format.
-
1.1.012 Jan 2026Release notes
Open source →Features
- 🌍 Full Localization Support: Added support for 25+ languages including English, Spanish, French, German, Arabic, Urdu, Hindi, Chinese, Portuguese, Russian, Italian, Turkish, Japanese, Korean, and more.
- Added
Validators.setLocale(Locale)for dynamic runtime locale switching. - Added
FormLocalizationsclass for accessing localized strings directly.
Improvements
- Updated all validators (Email, Phone, Password, Name, Age, Date, Time) to automatically use localized error messages.
- Enhanced example app to demonstrate dynamic language switching.
-
1.0.331 Jul 2024Release notes
Open source →Features
- Added date and time validation methods
- Improved age validation with better date parsing
- Enhanced password validation with configurable criteria
Improvements
- Better error messages for all validators
- Improved null safety handling
-
1.0.215 Jul 2024Release notes
Open source →Improvements
- Configuration improvements for better customization
- Enhanced validator flexibility
- Updated documentation
Bug Fixes
- Fixed minor validation edge cases
- Improved regex patterns for email validation
-
1.0.115 Jul 2024Release notes
Open source →Bug Fixes
- Fixed asset loading issues for phone validation
- Improved package initialization
- Minor documentation updates
-
1.0.012 Jul 2024Release notes
Open source →Initial Release
- ✅ Email validation with regex pattern matching
- ✅ Phone number validation for multiple countries
- ✅ Password validation with customizable criteria
- ✅ Name validation with proper formatting rules
- ✅ Age validation from DateTime or string
- ✅ Customizable error messages
- ✅ Null safety support
- ✅ Comprehensive test coverage
- ✅ Example application
- ✅ Full documentation