Search packages, repositories and app categories

Package detailsv2.0.0+1

regexed_validator

Validating: phone, name, postalCode, email, url, currency, ip, date, time, htmlTags, password (strong), medium-password, creditCard. for A Dart/Flutter developers

AndroidiOSWebmacOSWindowsLinux
30-day downloads
47
Likes
55
Pub points
150

Install package

flutter pub add regexed_validator

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

regexed_validator is a Dart/Flutter package designed to simplify form validation with pre-built regular expressions for common data types such as email, phone numbers, credit cards, passwords, URLs, IP addresses, dates, and more. It provides developers with reliable, reusable validation logic to ensure accurate input formatting across Android, iOS, Web, macOS, Windows, and Linux. The package supports strong and medium password strength checks, HTML tag validation, and currency formatting, making it ideal for building robust user forms. With clear syntax and easy integration via pub.dev, it enhances developer productivity while reducing boilerplate code.

Use cases

  • Form input validation
  • User registration flows
  • Secure password checking
  • Address and contact form processing
  • Data integrity in mobile and web apps
  • API request payload validation

Key features

  • Predefined regex patterns for 12+ data types
  • Password strength validation (strong/medium)
  • Cross-platform compatibility
  • Easy integration with Flutter forms
  • Support for international formats
  • Lightweight and dependency-free

Suitable for

  • Flutter developers building forms
  • Apps requiring strict input validation
  • Developers seeking reusable validation logic
  • Projects targeting multiple platforms
  • Teams prioritizing code consistency
  • Startups needing rapid form development

Considerations

  • Requires manual handling of error messages
  • Limited customization for complex validation rules
  • No built-in localization support
  • Depends on external regex patterns
  • Not suitable for highly dynamic validation scenarios
  • May need additional packages for advanced form management

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Validating:

  • phone
  • name
  • postalCode
  • email
  • url
  • currency
  • ip
  • date
  • time
  • htmlTags
  • password (strong)
  • password (medium)
  • creditCard

For Dart/Flutter developers. Regexed Validator at pub.dartlang.org

Usage

Usage is pretty simple just pass a phone, date, email... to its validation method, see the example below

import 'package:regexed_validator/regexed_validator.dart';

main() {
  print( validator.email('example@example.co.uk') ); // true

  print(validator.url('http://www.nowhere.com?product=28&color=blue')); // true

  print(validator.currency('£498.10')); // true

  print(validator.ip('67.52.159.38')); // true

  print(validator.time('14:34 GMT -5')); // true

  print( validator.htmlTags('<strong>Bold</strong>\n'
          '<em>Emphazied</em>\n'
          '<b>Bold</b>\n'
          '<i>Italics</i>\n'
          '<span id="foo" class="bar">Some text</span>\n'
          '<hr />')
  ); // true
}

With Flutter TextField, TextFormField and Form(s)

There is nothing specific to this package when working with Forms and TextFields, see the example below

TextFormField(
    // The validator receives the text that the user has entered, and use regexed_validator to check if it is a valid string.
    validator: (value) {
      if (!validator.email(value)) {
        return 'Please enter a valid email';
      }
      return null;
    },
  ),

Here is a complete example, with a Form and an email field:

import 'package:flutter/material.dart';
import 'package:regexed_validator/regexed_validator.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    const appTitle = 'Form Validation Demo';

    return MaterialApp(
      title: appTitle,
      home: Scaffold(
        appBar: AppBar(
          title: const Text(appTitle),
        ),
        body: const MyCustomForm(),
      ),
    );
  }
}

// Create a Form widget.
class MyCustomForm extends StatefulWidget {
  const MyCustomForm({Key? key}) : super(key: key);

  @override
  MyCustomFormState createState() {
    return MyCustomFormState();
  }
}

// Create a corresponding State class.
// This class holds data related to the form.
class MyCustomFormState extends State<MyCustomForm> {
  // Create a global key that uniquely identifies the Form widget
  // and allows validation of the form.
  //
  // Note: This is a GlobalKey<FormState>,
  // not a GlobalKey<MyCustomFormState>.
  final _formKey = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    // Build a Form widget using the _formKey created above.
    return Form(
      key: _formKey,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          TextFormField(
            // The validator receives the text that the user has entered, and use regexed_validator to check if it is a valid string.
            validator: (value) {
              if (value == null || !validator.email(value)) {
                return 'Please enter a valid email';
              }
              return null;
            },
          ),
          Padding(
            padding: const EdgeInsets.symmetric(vertical: 16.0),
            child: ElevatedButton(
              onPressed: () {
                // Validate returns true if the form is valid, or false otherwise.
                if (_formKey.currentState!.validate()) {
                  // If the form is valid, display a snackbar. In the real world,
                  // you'd often call a server or save the information in a database.
                  ScaffoldMessenger.of(context).showSnackBar(
                    const SnackBar(content: Text('Processing Data')),
                  );
                }
              },
              child: const Text('Submit'),
            ),
          ),
        ],
      ),
    );
  }
}

Categories

Source repository

Projects using this package