Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.0.0+1

regexed_validator

Validando: telefone, nome, código postal, email, URL, moeda, IP, data, hora, tags HTML, senha (forte), senha média, cartão de crédito. Para desenvolvedores Dart/Flutter

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
47
Curtidas
55
Pontos Pub
150

Instalar pacote

flutter pub add regexed_validator

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

regexed_validator é um pacote Dart/Flutter projetado para simplificar a validação de formulários com expressões regulares pré-construídas para tipos de dados comuns, como e-mails, números de telefone, cartões de crédito, senhas, URLs, endereços IP, datas e muito mais. Ele fornece aos desenvolvedores lógica de validação confiável e reutilizável para garantir a formatação correta da entrada em Android, iOS, Web, macOS, Windows e Linux. O pacote suporta verificações de força de senha forte e média, validação de tags HTML e formatação de moeda, tornando-o ideal para criar formulários de usuário robustos. Com sintaxe clara e integração fácil por meio do pub.dev, ele aumenta a produtividade dos desenvolvedores enquanto reduz o código boilerplate.

Casos de uso

  • Validação de entrada de formulário
  • Fluxos de registro de usuário
  • Verificação de senha segura
  • Processamento de formulários de endereço e contato
  • Integridade de dados em aplicativos móveis e web
  • validação de payload de solicitação da API

Principais recursos

  • Padrões de expressão regular pré-definidos para mais de 12 tipos de dados
  • Validação de força de senha (forte/média)
  • Compatibilidade multiplataforma
  • Integração fácil com formulários do Flutter
  • Suporte a formatos internacionais
  • Leve e sem dependências

Indicado para

  • Desenvolvedores Flutter construindo formulários
  • Aplicativos que exigem validação rigorosa de entrada
  • Desenvolvedores em busca de lógica de validação reutilizável
  • Projetos direcionados para múltiplas plataformas
  • Equipes que priorizam a consistência do código
  • Startups que precisam de desenvolvimento rápido de formulários

Considerações

  • Requer manipulação manual das mensagens de erro
  • Personalização limitada para regras de validação complexas
  • Sem suporte de localização embutido
  • Depende de padrões regex externos
  • Não adequado para cenários de validação altamente dinâmicos
  • Pode ser necessário pacotes adicionais para gerenciamento avançado de formulários

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

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'),
            ),
          ),
        ],
      ),
    );
  }
}

Categorias

Repositório-fonte

Projetos que usam este pacote