fast_validator 0.3.0 copy "fast_validator: ^0.3.0" to clipboard
fast_validator: ^0.3.0 copied to clipboard

A flutter package to validate text fields, date fields or any data fastly. Includes built in commonly used validators. You can also add custom validators for your needs.

example/lib/main.dart

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

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late TextEditingController textController;
  String? error;

  @override
  void initState() {
    textController = TextEditingController();
    super.initState();
  }

  @override
  void dispose() {
    textController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              const Text('User email *', style: TextStyle(fontSize: 32)),
              SizedBox(
                width: 350,
                height: 100,
                child: TextField(
                  controller: textController,
                  style: const TextStyle(fontSize: 32),
                  decoration: const InputDecoration(
                    contentPadding:
                        EdgeInsets.symmetric(horizontal: 6, vertical: 0),
                    border: OutlineInputBorder(
                        borderSide: BorderSide(width: 3, color: Colors.green)),
                  ),
                ),
              ),
              Text(error ?? '',
                  style: const TextStyle(color: Colors.red, fontSize: 24)),
            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(
            onPressed: _validate, child: const Text('Validate')),
      ),
    );
  }

  void _validate() {
    setState(() => error = null); // reset the error message

    String text =
        textController.text.trim(); // extract the text to be validated.

    ValidationResult result = FastValidator.validate(text,
        fieldName: 'Email',
        validators: [
          FastRequiredValidation(),
          FastEmailValidation(customMessage: 'Invalid email')
        ]); // validate

    debugPrint('Result: ${result.result}');
    debugPrint('Valid: ${result.valid}');
    debugPrint('Type: ${result.type}');
    debugPrint('ErrorMsg: ${result.errorMessage}');

    if (!result.valid)
      setState(() => error = result.errorMessage); // update the error message
  }
}
6
likes
160
points
49
downloads

Publisher

unverified uploader

Weekly Downloads

A flutter package to validate text fields, date fields or any data fastly. Includes built in commonly used validators. You can also add custom validators for your needs.

Repository (GitHub)
View/report issues

Topics

#validate #form #field #error #validation

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on fast_validator