Expressões Regulares com Action Script 3.0!!!

Entre os recursos de programação, as expressões regulares são uma das ferramentas mais avançadas e ao mesmo tempo uma das menos utilizadas.

Expressão Regular é um método que utiliza alguns caracteres com significado especial para especificar um padrão de texto, ou seja, um padrão de caracteres, especialmente formatado, que permite localizar e reconhecer um trecho de texto dentro de outro (isto é, reconhece uma string dentro de outra).
Basicamente, define-se um conjunto de caracteres, uma seqüência para eles e a posição onde deseja encontra-los. Assim, você pode criar regras para validar e-mails em formulários, conferir telefones, identificar nomes estranhos e muito mais. O suporte a expressões regulares (também conhecida como regexp, regex e ER) pode ser encontrado em programas como sed, awk e grep, em editores de texto como vi e emacs, e em linguagens de programação como C, perl, java, python, php etc. Entender como essa tecnologia funciona e coloca-la em prática não é algo simples.

É muito importante realizar uma verificação nos campos de formulário, não apenas para evitar o envio de dados errados, mas principalmente para aumentar a segurança na hora de lidar com bancos de dados.

Isso é muito importante principalmente nos campos de senha, pois há casos onde no campo senha uma pessoa mal-intencionada poderá realizar uma pesquisa mysql para retornar a senha de determinado usuario.

Formando Expressões

^ Início de uma linha
$ Final de uma linha
n? Zero ou apenas uma ocorrência do caracter ‘n’
n* Zero ou mais ocorrências do caracter ‘n’
n+ Pelo menos uma ou mais ocorrências do caracter ‘n’
n{2} Exatamente duas ocorrências do caracter ‘n’
n{2,} Pelo menos 2 ou mais ocorrências do caracter ‘n’
n{2,4} De 2 a 4 ocorrências do caracter ‘n’
. Qualquer caracter
() Parênteses para expressões grupais
(.*) Zero ou mais ocorrências de qualquer caracter
(n|a) Ou ‘n’, ou ‘a’
[1-6] Qualquer digito compreendido entre 1 e 6
[c-h] Qualquer letra minúscula compreendida entre ‘c’ e ‘h’
[D-M] Qualquer letra maiúscula compreendida entre ‘D’ e ‘M’
[^a-z] Qualquer caracter EXCETO qualquer letra minúscula entre ‘a’ e ‘z’.

Importante: O símbolo ‘^’ só é tido como excessão de uma sequência se ele vier exatamente no início da sequência especificada. Se ele vier no início da expressão de regex(fora dos parênteses ou colchetes de expressões), ele será interpretado como “início de linha”, e não como termo de negação. E se ele vier no meio de uma sequência, será interpretado como parte da mesma.

Exemplos:

[^0-9] -> Qualquer caracter exceto dígitos de 0 a 9 (ou seja, apenas letras)

[53^a-z] -> Caracteres permitidos: 5, 3, ^, letras de ‘a’ a ‘z’

^.{2} -> Quaisquer 2 caracteres no início da linha

Explicando a expressão:

^([0-9,a-z,A-Z]+) -> No início da linha, pelo menos uma ou mais ocorrências dos caracteres de 0-9, ou a-z, ou A-Z

([.,_,-]([0-9,a-z,A-Z]+))* -> Seguidos ou não (Zero ou mais ocorrências) da expressão: ponto ou underline ou hífen seguidos de caracteres de 0-9, a-z ou A-Z que apareçam pelo menos uma vez ou mais

[@] -> seguido de arroba

([0-9,a-z,A-Z]+) -> seguidos de pelo menos um ou mais caracteres de 0-9, ou a-z, ou A-Z

([.,_,-]([0-9,a-z,A-Z]+))* -> Seguidos ou não(zero ou mais ocorrências) da expressão: ponto ou underline ou hífen seguidos de caracteres de 0-9, a-z ou A-Z que apareçam pelo menos uma vez ou mais

[.] -> seguidos de ponto

([0-9,a-z,A-Z]){2,3} -> Seguidos de 2 a 3 ocorrências de caracteres a-z ou A-Z

([a-z,A-Z])?$ -> Seguidos de uma ou nenhuma ocorrência de caracteres de a-z ou A-Z, no final da linha

A expressão ereg foi precedida de um ‘!’ para retornar se valor contrário, ou seja, se a variável $input_email não coincidir com a expressão especificada, ele executa o comando echo “caracteres inválidos…”;

Essa expressão aceita e-mails com pontos, underlines e hifens.

Depois de uma pequena introdução vamos estudar como é seu uso com o Action Script 3.0
No Action Script 3.0 foi implementada a nova Classe RegExp, na classe é usado o método exec para executar a busca da expressão regular, retornando se é um email válido ou não.

Codigo fonte no Labs

This movie requires Flash Player 9

Referências

Expressões Regulares
http://guia-er.sourceforge.net/guia-er.html

Classe RegExp do Action Script 3.0
http://livedocs.macromedia.com/labs/1/flex/langref/RegExp.html

ActionScript 3.0, Flash, Flash Platform, Flex, PHP, Principal, RIA

1 comment


  1. Osni de Godoy Luz

    Como eu faço para construir uma expressão regular para indicar datas válidas, conforme os exemplos a seguir. Datas válidas: 23/10/2006, 1/1/4, 01/1/06, 23/11/03. Datas inválidas: 23//2004, 1/13/03, 1/1/1999, 33/2/2004. Na expressão, use a indicação de faixas de dígitos por [0 − 9], [1 − 9], ou
    [1 − 2], quando necessário.
    Eu tenho que seguir este padrao ou nao: exemplos: +61 7 3875 2234, (07) 3875 2234, 07 3875 2234 e 3875 2234.
    Resposta: d = [ 09 ] ((((“+�61� �) U e)(d U dd U “(�dd�)�)) U e) dddddddd