Precisa de um freelancer, códigos-fonte e exemplos completos?
Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
 
Arquivo de Códigos - Página Inicial
Códigos-fonte
» Códigos-fonte e exemplos completos
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: 67
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 :: Classes de caracteres
No tópico anterior vimos como é possível pesquisar um padrão no inicio e final de uma string. Vimos também que é possível pesquisar padrões no inicio, meio e final de palavras constantes da string.

Este tópico avança um pouco mais e apresenta as classes de caracteres. Estas classes podem ser combinadas dentro de colchetes "[ ]" para a construções de padrões mais complexos. Analise a tabela abaixo antes de escrevermos alguns exemplos:

Símbolo
Descrição
Exemplo
[xyz]
Encontra qualquer caractere pertencente ao grupo de caracteres dentro dos colchetes. Você pode usar o hífen para definir uma faixa. Por exemplo: /[a-z]/ encontra qualquer letra do alfabeto, /[0-9]/ encontra qualquer digito de 0 a 9. /[AN]BC/ encontra "ABC" e"NBC" mas não encontra "BBC" uma vez que o "B" fora dos colchetes não faz parte do conjunto.
[^xyz]
Encontra qualquer caractere que não esteja no conjunto entre colchetes. O símbolo ^ nos colchetes indica negação.

Obs: Não confunda o símbolo ^ (negação) dentro dos colchetes com o símbolo ^ que indica que o padrão deve ser encontrado no início da string. A negação deve ser usada somente dentro de colchetes.
/[^AN]BC/ encontra "BBC" mas não encontra "ABC" ou "NBC".
.
(ponto). Encontra qualquer caractere exceto quebras de linha ou outro caractere UNICODE que significa término de linha.
/b.t/ encontra "bat", "bit", "bet" e assim por diante.
\w
Encontra qualquer caractere alfanumérico incluindo o sublinhdo. Equivale à [a-zA-Z0-9_]. /\w/ encontra "200" em "200%"
\W
Encontra qualquer caractere que não esteja no conjunto [a-zA-Z0-9_]. Equivale à [^a-zA-Z0-9_]. /\W/ encontra "%" em "200%"
\d
Encontra qualquer dígito de 0 a 9. Equivale a [0-9].  
\D
Encontra qualquer caractere que não seja um dígito. Equivale à [^0-9]. /\D/ encontra "No" em "No 342222"
\s
Encontra um caractere que provoca um espaço. Equivale à [ \t\r\n\v\f].  
\S
Encontra qualquer caractere que não provoque um espaço. Equivale à [^ \t\r\n\v\f].  

Vimos na tabela acima que os colchetes "[ ]" são muito úteis quando precisamos definir um conjunto de caracteres para um padrão. Como forma de exemplificar isso, vamos escrever um código que verifica se uma string começa com as letras "A", "J" ou "M". Veja a listagem:

<script type="text/JavaScript" language="JavaScript">
  var pesquisa = /^[AJM]/;
  var frase = "Mas aquelas pessoas pareciam apressadas.";

  if(frase.match(pesquisa))
    alert("A frase começa com A, J ou M");
  else
    alert("A frase não começa com A, J ou M");
</script>


Este trecho de código merece muita atenção. Comece analisando o padrão de pesquisa:

var pesquisa = /^[AJM]/;

Como você deve se lembrar, o símbolo ^ indica que o padrão deve ser encontrado no inicio da string. Assim, o conjunto [AJM] especifica que qualquer uma destas letras deve ser encontrada no inicio da string. Observe que o resultado somente será satisfatório se a frase realmente começar com uma destas letras na forma maiúscula. Para aceitar letras minúsculas também basta adicionar o sinalizador de não-distinção entre maiúsculas e minúsculas:

var pesquisa = /^[AJM]/i;

A tabela nos mostrou também que é possível usar o hífen para definir uma faixa de caracteres. Desta forma, fica muito fácil verificar se uma string começa com uma letra maiúscula. Veja um exemplo:

<script type="text/JavaScript" language="JavaScript">
  var pesquisa = /^[A-Z]/;
  var frase = "Observe esta frase";

  if(frase.match(pesquisa))
    alert("A frase começa com uma letra maiúscula");
  else
    alert("A frase não começa com uma letra maiúscula");
</script>


Veja que o resultado do teste neste código só será satisfatório se a string realmente começar com letras maiúsculas. Você poderia aceitar letras minúsculas também usando duas abordagens. A primeira seria usar o sinalizador de não-distinção entre maiúsculas e minúsculas:

var pesquisa = /^[A-Z]/i;

A segunda abordagem é ampliar o conjunto. Assim:

var pesquisa = /^[a-zA-Z]/;

Sabemos que um identificador válido em Java deve iniciar com uma letra (maiúscula ou minúscula), um cifrão ou um sublinhado. Ora, que tal escrever um código que verifica isso? Veja a listagem:

<script type="text/JavaScript" language="JavaScript">
  var pesquisa = /^[a-zA-Z$_]/;
  var identificador = "_data";

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


Brinque com este código um pouco antes de continuarmos. Experimente alterá-lo para que o caractere "#" também seja aceito como inicial para um identificador válido.

Sabemos que o símbolo ^ é usado para indicar que a pesquisa do padrão será feito no início da string. Porém, quando estamos usando classes de caracteres, este símbolo também pode ser usado, mas, com um significado diferente. Dentro de colchetes, este símbolo significa negação. Veja por exemplo um trecho de código que especifica que uma string não pode começar com as letras que vão de "A" até "F":

<script type="text/JavaScript" language="JavaScript">
  var pesquisa = /^[^A-F]/;
  var frase = "Faça o que eu digo";

  if(frase.match(pesquisa))
    alert("A frase não começa com as letras de A até F");
  else
    alert("A frase não pode começar com as letras de A até F");
</script>


A tabela acima nos mostra que podemos testar a ocorrência de um dígito de 0 a 9 usando um conjunto [0-9] ou o símbolo "\d". Veja um trecho de código que verifica se uma string começa com um dígito de 0 a 9:

<script type="text/JavaScript" language="JavaScript">
  var pesquisa = /^\d/;
  var valor = "3FFWHO";

  if(valor.match(pesquisa))
    alert("O valor começa com um dígito");
  else
    alert("O valor não começa com um dígito");
</script>


Analise o padrão de pesquisa novamente:

var pesquisa = /^\d/;

Veja que algo que parecia assustador à primeira vista está muito mais simples agora. Tudo que temos aqui é o símbolo ^ indicando que o padrão deverá ser encontrado no início da string e o símbolo "\n" que representa um digito de 0 a 9. Revise este tópico até que nenhuma dúvida reste e vamos prosseguir.
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
Veja dicas, truques e anotações de JSF - Java Server Faces
Como definir o fuso horário para a tag <f:convertDateTime>
Como criar formulários em aplicações JSF usando a tag <h.form>
Como definir a quantidade mínima e máxima de caracteres para um determinado campo usando a tag <f:validateLength>
Aprenda a formatar e converter datas e horas em JSF usando a tag <f:convertDateTime>
Criando caixas de texto de linha única usando a tag <h:inputText>
Como usar a tag <f:validateLength> para definir a quantidade mínima e máxima de caracteres permitidos em um campo
O que é o arquivo faces-config.xml e qual sua utilidade?
Aprenda a validar campos obrigatórios usando o atributo required e a tag message
Aprenda a formatar e converter datas e horas em JSF usando a tag <f:convertDateTime>
Criando uma caixa de seleção usando a tag <h:selectBooleanCheckbox>
Veja dicas, truques e anotações de outras linguagens
Java - Saiba o que é Reflexão (Reflection) em Java
Java - Obtendo os nomes das colunas de uma JTable
Java - Como habilitar ou desabilitar um JMenu
C++ - Como usar ponteiros para controlar um laço while
C# (CSharp) - Usando o método IndexOf para contar as ocorrências de um caractere em uma string
Java - Como substituir todas as ocorrências de uma substring em uma string usando expressões regulares
C# (CSharp) - Criando uma caixa de diálogo Windows Forms usando C#
ActionScript - Usando um laço for para percorrer todos os elementos de um array
Java - Como excluir todos os elementos de um Vector usando o método removeAllElements()
Java - Obtendo o menor valor em um array de inteiros

       

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