Arquivo de Códigos - Página Inicial
Códigos-fonte
» Boletos Bancários
» Calendário de Eventos
Linguagens
» ActionScript
» Adobe AIR
» Adobe Flex
» AJAX
» C
» C#
» C++
» CSS
» Delphi
» DHTML - Dynamic HTML
» HTML/XHTML
» Java
» JavaFX
» JavaScript
» Java Servlets
» JSP - Java Server Pages
» Perl
» PHP
» PHP-GTK
» Python
» Ruby
» Tcl/Tk
» VB.NET
Bancos de Dados
» IBM DB2
» MySQL
Frameworks
» CodeIgniter
» jQuery
» JSF - Java Server Faces
» Qt
» Ruby On Rails
» Struts
» Struts 2
» wxWidgets
» Zend Framework
Container/Servidor
» Apache Tomcat
» Apache Web Server
Ferramentas
» Apache Ant
» iTextSharp (iText#)
Referências
» CSS1 e CSS2
» JavaScript
Serviços On-Line
» Qual é meu IP?
» Tabela Cores HTML I
» Tabela Cores HTML II
» Lista de Mime Types
» Códigos Teclas Virtuais
Usuários On-Line
Visitantes: 31
PHP
O que há de novo no PHP 5?
40 dicas e truques sobre como trabalhar com datas e horas em PHP
60 dicas e truques sobre como trabalhar com strings e caracteres em PHP
PHP e a Orientação a Objetos - POO (Curso Completo)

DHTML
Curso completo de DHTML para iniciantes

CSS
Como definir uma imagem de fundo fixa na página
Definindo uma imagem de fundo para botões HTML
Você está aqui: Inicio -> Tutoriais -> JavaScript
Expressões Regulares em JavaScript :: Padrões de repetições em expressões regulares
Este tópico realmente nos permitirá escrever expressões regulares mais úteis. É através de padrões de repetições que conseguiremos validar entradas do usuários tais como CPF, CEP e outros valores que obedecem a um determinado padrão.

Dê uma boa olhada na tabela a seguir e vamos escrever alguns exemplos:

Símbolo
Descrição
Exemplo
{x}
Encontra exatamente x ocorrências de um padrão. /\d{5}/ encontra 5 dígitos.
{x,}
Encontra x ou mais ocorrências de um padrão.
/\s{2,}/ encontra no mínimo 2 caracteres de espaço.
{x,y}
Encontra de x até y ocorrências de um padrão.
/\d{2,4}/ encontra no mínimo 2 mas não mais que 4 dígitos.
?
Encontra zero ou uma ocorrência. Equivale à {0,1}. /a\s?b/ encontra "ab" ou
"a b".
*
Encontra zero ou mais ocorrências. Equivale à {0,}. /we*/ encontra "w" em "why" e "wee" em "between", mas não encontra em "bad".
+
Encontra uma ou mais ocorrências. Equivale à {1,}. /fe+d/ encontra tanto "fed" quanto "feed"

Sabemos que o símbolo {x} indica que o padrão pesquisado deve ter exatamente x ocorrências da expressão que o precede. Sendo assim, vamos escrever um código para validar o padrão de CEP brasileiro.

Durante a autoria deste tutorial, o padrão de CEP brasileiro é 00.000-000, ou seja, um CEP de uma cidade qualquer poderia ser 43.534-300. É claro que até o final da leitura deste texto você estará apto a oferecer alternativas de validação de CEPs.

Bem, então sabemos que, para que o padrão de CEP que analisamos acima seja válido, a string deverá conter 2 digitos, 1 ponto, 3 digitos, 1 hifen e mais 3 digitos. Veja o trecho de código que mostra como esta validação pode ser feita:

<script type="text/JavaScript" language="JavaScript">
  var pesquisa = /^\d{2}.\d{3}-\d{3}$/;
  var CEP = "43.653-938";

  if(CEP.match(pesquisa))
    alert("Este CEP é válido");
  else
    alert("Este CEP não é válido");
</script>


Observe a expressão regular novamente:

var pesquisa = /^\d{2}.\d{3}-\d{3}$/;

Ficou com medo? Clique aqui e recomece a leitura do tutorial. Se você resolveu não clicar e continuar nós vamos analisar esta expressão passo a passo. Comece analisando o símbolo ^ no inicio do padrão e o símbolo $ no final do padrão. Estes símbolos servem para forçar a pesquisa do padrão no inicio e fim da string. Se não o usássemos aqui o código não funcionaria como esperado.

O restante da expressão é fácil. O trecho "\d{2}" indica que um digito de 0 a 9 deverá aparecer duas vezes. Em seguida temos a ocorrência de um ponto. O trecho "\d{3}" indica a ocorrência de três digitos de 0 a 9. Em seguida temos a ocorrência do hífen e finalmente mais três dígitos de 0 a 9. Fácil, não?

Para praticar um pouco mais, veja como é fácil escrever uma expressão regular que verifica se uma string contém um padrão de CPF válido. Veja o código:

<script type="text/JavaScript" language="JavaScript">
  var pesquisa = /^\d{3}.?\d{3}.?\d{3}-?\d{2}$/;
  var CPF = "334.355.243-32";

  if(CPF.match(pesquisa))
    alert("Este CPF parece ser válido");
  else
    alert("Este CPF não é válido");
</script>


Este trecho de código não verifica se o CPF é válido, apenas se o número fornecido obedece aos padrões de um número de CPF. Mas, espere! O que significa estes pontos de interrogação logo após os pontos e o hífen? Ora, sabemos que muitas pessoas preferem digitar o CPF sem os pontos e o hífen. Como a tabela anterior nos informa que o símbolo "?" é indicado para marcar uma ou nenhuma ocorrência do símbolo que o precede, nosso código consegue validar números de CPF nos formatos 432.643.943-54 ou simplesmente 43264394354.

E agora, vamos aprender a validar um endereço de e-mail?

Sabemos que um endereço de e-mail pode conter, antes do @, uma quantidade ilimitada de letras, dígitos, pontos, hífens ou sublinhados (underline). Caracteres especiais não são permitidos. Existe, no entanto, uma restrição: é preciso que algo apareça antes do @. Olhando a tabela anterior verificamos que o símbolo + é usado para exigir no mínimo uma ocorrência do padrão especificado entre os colchetes e pode conter uma quantidade ilimitada desta ocorrência. Assim, comece analisando a parte da expressão antes do @:

var padrao = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,}$/;

Logo depois do @ nós sabemos que temos que ter o nome do domínio (algo como recomende.com). Mas, não há restrições na quantidade de pontos separando as partes do domínio. A única restrição é que no mínimo um ponto deverá ser encontrado. Vamos começar analisando o trecho:

([a-zA-Z0-9.-]+\.)+

Aqui o símbolo + dentro dos parênteses indica que poderemos ter uma ou mais ocorrências do padrão [a-zA-Z0-9.-]. Veja que o caractere de sublinhado não é permitido no nome de domínio. O símbolo "\." indica que logo após a(s) ocorrência(s) do padrão dentro dos colchetes um ponto deverá ser encontrado. Observe agora o símbolo + fora dos parênteses. Este símbolo nos informa que uma ou mais ocorrências do padrão dentro dos parênteses deverá ocorrer para que o endereço de e-mail seja válido.

Observe agora a parte final da expressão:

[a-zA-Z0-9.-]{2,}$

O símbolo $ indica que o endereço de e-mail deverá conter no mínimo duas ocorrências do padrão [a-zA-Z0-9.-]. Para finalizar dê uma olhada no código completo para o exemplo:

<script type="text/JavaScript" language="JavaScript">
  var padrao = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,}$/;
  var mail = "suporte@recomende.com";

  if(mail.match(padrao))
    alert("Este endereço de e-mail é válido");
  else
    alert("Este endereço de e-mail NÃO é válido");
</script>


Você realmente conseguiu entender esta expressão regular? Se a resposta for afirmativa você está pronto para continuar. Do contrario recomendo que clique aqui e recomece a leitura deste tutorial.
Este tutorial contém as seguintes seções:
  1. Introdução
  2. Entendendo as expressões regulares
  3. Usando o objeto global RegExp
  4. Primeiros passos na autoria de expressões regulares
  5. Os sinalizadores global e de não-distinção entre maiúsculas e minúsculas
  6. Uso de caracteres literais
  7. Definição de posições dos itens da pesquisa
  8. Classes de caracteres
  9. Padrões de repetições em expressões regulares
  10. Alternativas e agrupamento de padrões
  11. Como remover espaços duplicados de uma string usando expressões regulares
  12. Implementando uma função trim usando expressões regulares
  13. Uso de expressões regulares para transformar em maiúsculas as primeiras letras de cada palavra em uma string
 
 
Arquivo de Códigos - Página Inicial


http://www.arquivodecodigos.net
:: Arquivo de Códigos - Softwares e Consultoria em Programação ::
Todo o conteúdo deste site, quando não devidamente observado, pertence a seus idealizadores e não
poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação.
Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do
conteúdo disponibilizado nestas páginas.

Fale Conosco: (62) 3261-7018 / (62) 8185-0734

Desenvolvedor Responsável: Osmar J. Silva

Página Inicial Contatos Pesquisar Mapa do Site