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.
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.
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 asnotas legaisantes de proceder com
o acesso e leitura do
conteúdo disponibilizado nestas páginas.