DEV Community

Cover image for Vamos falar de RegEx?(Parte2) Colocando o DART/FLUTTER em prática
Toshi Ossada for flutterbrasil

Posted on

Vamos falar de RegEx?(Parte2) Colocando o DART/FLUTTER em prática

Utilizando no DART.

Agora vamos falar da parte que realmente importa que é a utilização dos RegEx em nossa linguagem favorita o DART.

Se não conferiu a Parte 1 deste artigo, onde eu explico detalhadamente o que é RegEx volte no na primeira parte

Para utilizar RegEx no DART utilizaremos a classe RegExp() que espera uma String contendo sua expressão regular como parâmetro. Ex. RegExp(‘[//w]’). Para não precisarmos ficar cancelando os caracteres especiais do dart, como a barra, geralmente iniciamos nossa String com o r para utilizarmos nossos caracteres da String na forma literal. Ex. RegExp(r‘[/w]’).

Agora para validar se um e-mail é valido ou não podemos utilizar a RegEx que criamos anteriormente e utilizando um dos métodos do RegExp para verificar se houve combinação do e-mail fornecido com a expressão Regular.

Também conseguimos validar String com múltiplas linhas, basta adicionar na instancia do RegExp o parâmetro multiLine passando o valor true.

Temos a função allMatches() que nos retornara todas as combinações encontradas dentro da String, isso me retornara uma lista de Matches que podemos recuperar todos os grupos que tiveram combinações onde o 0 é a combinação completa e do 1 são as combinações separadas por grupos

Utilizando o exemplo das tags HTML que vimos na seção de grupos vamos utilizar o RegEx.

<([\w\s]+)>([\w\s]+)<(?:[/])(\1)>

O resultado será

Para saber mais sobre a classe RegEx visite o documentação oficial do flutter

https://api.flutter.dev/flutter/dart-core/RegExp-class.html

Utilizando no Flutter

No Flutter há uma infinidade de maneiras de se utilizar RegEx, o mais comum é utilizar para validar formulários para isto basta utilizarmos o TextFormField() e na propriedade validator construiremos nossa regra para validar se nosso campo esta valido ou não, para isso retornaremos uma String qualquer caso o campo esteja invalido ou null caso o campo esteja valido

Para que a validação seja disparada é necessário disparar o validate() do formulário, para isso envolveremos nosso campo em um Form() dando uma chave para o formulário e logo em seguida criaremos um botão que irá disparar a validação.

O resultado será

Também conseguimos habilitar para que o campo faça a validação no momento que o usuário interagir com o formulário, basta utilizar a propriedade autovalidateMode

Agora podemos simplesmente utilizar nossa RegEx para validar o e-mail.

Também conseguimos utilizar para validar mascaras de entrada, gosto bastante do package https://pub.dev/packages/mask_text_input_formatter nele conseguimos passar um RegExp com os dados permitidos de entrada.

Há infinitas possibilidades de utilização de RegEx dentro e fora da programação e como virão é muito simples seu entendimento e construção.

Espero que tenham aprendido um pouco deste mundo.

Até a Próxima :)

https://github.com/toshiossada/DartRegex
Image description

Entre em nosso discord para interagir com a comunidade: https://discord.com/invite/flutterbrasil
https://linktr.ee/flutterbrasil

Reinvent your career. Join DEV.

It takes one minute and is worth it for your career.

Get started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

AWS Security LIVE!

Hosted by security experts, AWS Security LIVE! showcases AWS Partners tackling real-world security challenges. Join live and get your security questions answered.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️