Links comentados via del.icio.us – 8
Por: Thursday 30 November 2006 às 5:46 PM
Este é o oitavo artigo da série links comentados do Japs, quem perdeu algum ou está conhecendo esta série agora pode acompanhar as outras edições por aqui, Categoria Links Comentados.
Só para lembrar, quem quiser continuar recebendo os links que adiciono via del.icio.us em seu feed, basta assinar o Del.icio.us do Japs.
Vou iniciar uma nova forma de comentar os links, vou tentar ser bem suscinto, nos comentários e postar mais links.
JS, just it: Parte 1 – Acessando elementos por JavaScript, JS, just it : Parte 2 – Implementando o getElementsByClassName e JS, just it : Parte 3 – Modificando Atributos por JavaScript, artigos muito interessantes sobre JavaScript.
Por dentro do AdSense: Que tal uma fazer Blogtimização?, dicas para otimizar anúncios em seu blog.
Tá difícil…, se alguma coisa estiver dificil, este é o lugar de você iniciar a reclamação.
document.write and xhtml, artigo muito interessante para resolver este problema, eu já tive problema com isso reportado no artigo O mime-type do Japs agora é application/xhtml+xml.
Photosynth – espaços 3D navegáveis baseados em coleções de fotos e Como fazer feeds de sites dos outros com PHP, dois artigos muito interessantes do Bruno Torres.
E-book sobre PostgreSQL, o título já diz tudo, quem utiliza ou quer conhecer o PostgreSQL.
Problemas com acentos e outros caracteres em partições vfat, dicas muito interessante.
Ajax/Javascript Com DHTMLGoodies: Resulta em interfaces profissionais, muito interessante, recomendo.
GTD: Conheça um método eficaz de organização e produtividade pessoal que pode melhorar sua motivação e seus resultados, ainda não conhece esta metodologia? Deveria conhecer!
Anúncio: ‘Disponível a 4a. Edição do Guia do Linux Desktop!’, vale a pena conferir.
Calando conversas chatas no GMail, dica muito interessante para quem utiliza o Gmail.
Run: Universal JavaScript Animation Framework, não conhece? Deveria!
JSOC: JavaScript Object Cache, dica muito, muito útil.
Race Conditions with Ajax and PHP, outra dica muito, muito útil.
Pequeno aplicativo para criar .ISO, outra dica bastante útil.
Expressões Regulares – Uma Abordagem Divertida, livro do Aurélio Marinho Jargas sobre Expressões Regulares, vale a pena conferir e compra, eu ainda não comprei mas vou comprar.
E o último de hoje: A Deal’s a Deal, que segue com a imagem abaixo.
Espero que tenham gostado destas indicações de hoje que tiveram mais links do que comentários sobre o link, e quem quiser continuar recebendo os links que adiciono via del.icio.us em seu feed, basta assinar o Del.icio.us do Japs.
E quem tiver mais alguma colaboração, pode postar nos comentários, ou então me enviar.
Powered by Zoundry
Tags: AdSense AJAX Charsets Content Negotiation del.icio.us Dicas Download e-book Expressões Regulares Internet JavaScript links Links Comentados Linux MIME PHP Programação Prototype Software Livre Tecnologia
Outras Expressões Regulares comentadas
Por: Tuesday 17 October 2006 às 11:34 AM
No artigo Workshop “Expressões Regulares” expliquei alguns exemplos que foram apresentados na Apresentação de Expressões Regulares, mas alguns exemplos só apareceram na apresentação e não os expliquei.
Recebi alguns pedidos para explicar um pouquinho cada exemplo, então mãos à massa.
^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[1-3][0-9]{3}$: Um exemplo simples de uma Expressão Regular para validar uma data, no artigo Validações e Expressões Regulares, expliquei cada passo da expressão, vale conferir.
^[a-zA-Z0-9_\.-]{2,}@([A-Za-z0-9_-]{2,}\.)+[A-Za-z]{2,4}$: Este exemplo apresenta uma validação para endereços eletrônicos, ou seja, e-mail. Ela é relativamente simples, mas vou explicar algumas partes dela, temos nesta parte ^[a-zA-Z0-9_\.-]{2,}@ uma seqüência de dois ou mais caracteres, sendo eles letras a-z ou então, A-Z, números e caracteres especias, como _ (underline), . (ponto) e – (hífem), seguidos pelo @, ou seja, nesta parte validamos o nome de usuário, na segunda parte, ([A-Za-z0-9_-]{2,}\.)+[A-Za-z]{2,4}$, temos a validação do host, que é bem parecida com a validação do username.
^([0-1][0-9]|[2][0-3]):[0-5][0-9]$: Se na validação de data precisamos usar além de Expressão Regular mais alguma programação, nesta validação de hora, basta simplesmente a Expressão Regular, na primeira parte ^([0-1][0-9]|[2][0-3]):, temos a validação da hora, ou seja, o primeiro digito da hora deve ser 0 ou 1 e o segundo digito deve estar entre 0 e 9, sendo assim temos as horas entre 00 e 19, ou então, o primeiro digito sendo 2 e o segundo variando de 0 a 3, nos gerando uma hora de 20 a 23, tudo isso seguido de :, na segunda parte temos [0-5][0-9]$, que representa os minutos, seguindo a mesma idéia anterior, temos os minutos variando entre 00 e 59, sendo assim, esta pequena, mas nem por isso simples Expressão Regular, sozinha faz a validação de um horário.
^\d{0,}$: Expressão Regular simples e muito útil, esta pequena expressão é utilizada para verificar campos que aceitam somente números, ou seja, digitos de tamanho 0 até infinito.
^\(\d{2}\) \d{4}-\d{4}$: Outra expressão bem simples que é utilizada para construir máscaras para telefone, pois temos um ( (abre parêntese) seguido de dois números e depois um ) (fecha parêntese), logo depois 4 digitos seguido de um – (hífem) seguido de 4 digitos, ou seja um telefone no formato “(33) 3333-3333″.
^(\d{3})\.(\d{3})\.(\d{3})-(\d{2})$ ou ^((\d{3})\.){2}(\d{3})-(\d{2})$: Estes dois exemplos ilustram como podemos fazer uma validação para CPF, lembrando que esta expressão apenas valida o formato do CPF, o algoritmo de validação completa para o CPF, pode ser tema de um futuro artigo. Explicando um pouco a segunda expressão, pois a primeira é bem simples, mas não necessariamente fácil, então, quem tiver dúvida, pode escrever. A primeira parte da segunda expressão é ^((\d{3})\.){2}, explicando em partes temos, ((\d{3})\.), que significa três digitos seguidos de um ponto, só que ainda temos um {2}, que significa que o elemento anterior irá se repetir duas vezes, simplificando temos que a expressão ^((\d{3})\.){2}, é o mesmo que ^(\d{3})\.(\d{3})\., ou seja, três digitos um ponto três digitos e um ponto, o restante da expressão é simples, pois temos (\d{3})-(\d{2})$, que é o mesmo que dizer que temos três números seguidos de um hífem seguido de dois números, nos dando como resposta a máscara: 999.999.999-99, que é a mascara de um CPF.
Na apresentação dos exemplos eu perguntei se eu poderia subistituir as expressões acima por outras utilizando retrovisores, será que eu posso utilizar estas expressões ^(\d{3})\.\1\.\1-(\d{2})$ ou ^((\d{3})\.)\1\2-(\d{2})$? Antes de responder a pergunta, vou explicar novamente a segunda expressão ^((\d{3})\.)\1\2-(\d{2})$, que parece muito complexa, mas até que não é, explicando por partes temos ^((\d{3})\.), três digitos seguidos de um ponto, a segunda parte são os retrovisores \1\2, o primeiro retrovisor representa os três digitos seguido de um ponto, já o segundo retrovisor representa três digitos, a terceira parte -(\d{2})$ é um hífem seguido de dois digitos, então temos a mesma representação anterior 999.999.999-99, então poderíamos subistituir esta expressão ^((\d{3})\.){2}(\d{3})-(\d{2})$, por uma menor ^((\d{3})\.)\1\2-(\d{2})$? Mas a resposta é não, isso mesmo, não. Por um simples motivo, os retrovisores casam com o conteúdo e não com a Expressão Regular em si, então um se testássemos um CPF 222.222.222-33 a segunda expressão ^((\d{3})\.)\1\2-(\d{2})$ iria falar que o formato está correto, pois a primeira parte seria 222. o primeiro retrovisor 222. e o segundo retrovisor 222, e o restante da expressão casaria com o hífem e os dois digitos, mas se testássemos um CPF: 012.345.678-99 que tem o formato correto de um CPF a expressão ^((\d{3})\.)\1\2-(\d{2})$ retornaria erro, pois o primeiro retrovisor seria 012. e o segundo retrovisor 012, ou seja, 012. é diferente de 345., e também 012 é diferente de 678, mas lembrando que esta parte nem seria analisada pela expressão, pois a partir do momento que uma parte não casa com a expressão, esta já retorna erro. Então não podemos substituir a expressão ^((\d{3})\.){2}(\d{3})-(\d{2})$ por ^((\d{3})\.)\1\2-(\d{2})$, mesmo a segunda sendo mais compacta.
<[iI][mM][gG]([^s|S]*)([sS][rR][cC]=\"[^\"]*\")[^>]*>: Esta expressão bem estranha foi feita por mim para localizar todas as tags <img> dentro de um documento html, acho que ela é bem intuitiva, mas vou explicar passo a passo, a primeira parte <[iI][mM][gG] localiza < seguido de img, sendo que img pode ser escrito de qualquer maneira, a segunda parte ([^s|S]*) localiza todos os atributos da tag <img> que não começam com a letra s, ou seja, até o atributo src, a terceira parte, ([sS][rR][cC]=\"[^\"]*\"), pega todo o atributo src, já a quarta parte, [^>]*> pega o restante dos atributos da tag <img> até o seu fechamento. Acreditem esta Expressão Regular funciona, é claro que podem ser feitos alguns ajustes, então quem se habilitar
.
([uU][rR][lL]\([^\)]*\)): Esta expressão serve para localizar imagens que são colocadas através em background. A explicação dela é bem simples, mas quem não tiver entendido alguma coisa, pode postar no comentário, ou então entrar em contato.
(http|https|ftp|mailto):)?(//)?(\w+([\.@]\w+)*?)(?:/|@)?
([^\"\?]*?)?(?:\?([^\?\"]*?))?([^;:\(\)#])$: Esta expressão é bem parecida com a da tag img, mas a intensão dela é localizar qualquer link dentro de um documento html, vou explicar esta expressão, mas vou tentar se o mais sintético possível, a primeira parte (http|https|ftp|mailto):)? busca qualquer link que comesse por http: ou https: ou ftp: ou mailto:, mas lembre-se que o aparecimento desta parte é opcional, a segunda parte, (//)? é o // que também é opcional, e o restante da expressão (\w+([\.@]\w+)*?)(?:/|@)?([^\"\?]*?)?(?:\?([^\?\"]*?))?([^;:\(\)#])$ é utilizada para localizar o restante do endereço, não expliquei esta parte pois ela pega algumas seqüências que um endereço deve ter, esta expressão tem seus erros, mas funciona em vários casos, novamente quem se habilitar deixar esta expressão totalmente correta, fiquem a vontade
.
^\d{2}\.\d{3}-\d{3}$: Esta expressão é bem simples e acaba que não tendo nada novo, ela serve para validar o formato do CEP: 99.999-999. Todos os detalhes dela já foram abordados anteriormente.
^[-+]?\d{1,3}(\.\d{3})*,\d{2}$: Esta expressão serve para validar qualquer valor monetário, lembrando que o formato é o brasileiro, a primeira parte, ^[-+]?, o valor pode começar com + ou com -, ou então nenhum dos dois, na segunda parte, \d{1,3} temos de um a três digitos, na terceira parte, o mais interessante neste caso, (\.\d{3})* aqui temos um ponto seguido de três digitos que podem aparecer nenhuma ou então infinitas vezes, viram o legal? Nesta parte podemos ter milhares, milhões, bilhões, trilhões sem nenhum esforço, e caso seja uma centena, dezena ou unidade, ela simplesmente não aparece, na quarta parte, ,\d{2}$ temos a virgula seguida de dois digitos.
Espero que tenham gostado destas explicações, e caso ainda tenham alguma dúvida, postem comentários e vamos discutir, ou então entrem em contato.
Tags: Dicas Expressões Regulares Internet Tecnologia Validações XHTML
Workshop "Expressões Regulares"
Por: Monday 18 September 2006 às 1:35 PM
Foi me dada a oportunidade de desenvolver um Workshop para os colaboradores da área de tecnologia da Webroom com o tema Expressões Regulares.
Neste artigo vou explicar alguns detalhes da apresentação, que pode ser conferida no link Apresentação de Expressões Regulares, para aqueles que desejam aprofundar mais no assunto, indico a leitura do livro Guia de Expressões Regulares.
A introdução fala por si só, então vou iniciar minhas considerações pelos metacaracteres, que são os caracteres especiais utilizados para se construir Expressões Regulares, eles podem ser divididos em representantes, quantificadores, âncoras, e outros.
Representantes, são utilizados para representar um ou mais caracteres.
. (ponto) => Substitui letras, números, caracteres especias, ou seja, qualquer caracter.
[] (lista) => Lista de caracteres permitidos, ou seja, serão considerados expressamente os caracteres que estão entre os colchetes.
[^] (lista negada) => Lista de caracters não permitidos, ou seja, serão considerados todos os caracteres, exceto os que estão entre os colchetes.
Quantificadores, são utilizados para quantificar o número de repetições permitidas para a entidade imediatamente anterior.
? (opcional) => A entidade anterior pode aparecer nenhuma ou uma vez.
* (asterisco) => A entidade anterior pode aparecer nenhuma, uma ou então mais de uma vez.
+ (mais) => A entidade anterior pode aparecer uma ou mais vezes.
{n,m} (chaves) => A entidade anterior aparece de n até m vezes
Âncoras, são utilizados para marcar uma posição específica na linha.
^ (circunflexo) => Marca o início da linha.
$ (cifrão) => Marca o final da linha.
\b (borda) => Marca o início ou fim de uma palavra, ou seja, as bordas da palavra.
Outros, são classificados como outros, pois não possuem funções específicas, logo não podem ser agrupadas.
\c (escape) => Torna literal o caractere c, ou seja, se utilizarmos \. estamos nos referindo ao sinal de pontuação, e não há um caracter qualquer.
| (ou) => Serve como escolha, ou seja, ou uma coisa ou outra.
() (grupo) => Serve para delimitarmos grupos, na apresentação dos exemplos o entendimento ficará mais fácil.
\1…\9 (retrovisor) => Referencia os textos casados dentro do grupo, da mesma forma, entenderemos melhor com os exemplos.
Agora vamos à melhor parte, que são os exemplos, pois tenho certeza que ficará muito mais fácil entendermos todos estes caracteres, e como unirmos estes para montar uma Expressão Regular.
O primeiro exemplo, mostra os passos que podem ser dados para montar uma Expressão Regular, ou seja, começamos bem genéricos e vamos limitando as possibilidades, como podemos ver, a primeira tentativa seria deixarmos n.o, que resolve nosso problema, pois encontra a palavra não escrita com ou sem acento, mas como ela é genérica ela traz palavras que não queríamos, como neo, anão e outras, sendo assim temos que melhorar nossa expressão, tentamos colocar n[ãa]o, mais específica ela continua funcionando para encontrar a palavra não com ou sem acento, mas ainda traz algumas palavras não desejadas, tentando ser mais específicos podemos tentar \bn[ãa]o\b, agora sim, esta expressão nos traz apenas a palavra não com e sem acento, mas podemos ainda construir uma Expressão Regular ainda mais específica que nos trará todas as variações da palavra não, ou seja, trazendo também quando escrevemos em caixa alta, tendo como resultado \b[Nn][ÃãAa][Oo]\b, que encontrará qualquer variação da palavra não. Vale lembrar que é melhor não ignorarmos o case sensitive, ou seja, caracteres em minúsculo e maiúsculo, e muito menos deixar para o sistema diferenciar estes caracteres.
O segundo exemplo é bem semelhante a este, pois partimos de uma expressão simples e genérica para uma mais completa, então não vou explicar passo a passo, mas se alguém tiver dúvida, basta perguntar
.
O terceiro, o quarto e o quinto exemplos ilustram bem a utilização dos metacaracteres do tipo âncoras, o terceiro exemplo é utilizado para buscarmos caracteres específicos no início de uma linha, ou então no final, o quarto exemplo é uma boa dica para encontrarmos e até mesmo excluirmos linhas vazias de um arquivo e o quinto exemplo serve para auxiliar a um texto onde os parágrafos devem ter entre 20 e 60 caracteres.
O sexto e o sétimo exemplos ilustram bem a utlização do | (ou), e ainda no sétimo exemplo notamos a utilização do ? (opcional), que faz com que a entidade anterior apareça nenhuma, ou então uma vez, vamos analisar com mais calma a expressão (mini|(su|hi)per)?mercado. Começando pelo opcional, sabemos que esta expressão casa com mercado, pois toda esta parte (mini|(su|hi)per) pode não aparecer, caso apareça (apenas uma vez, pois estamos utilizando o ?, não se esqueça) poderemos ter um minimercado, ou então um (su|hi)permercado que pode ser lido como um supermercado ou um hipermercado, ou seja, com a expressão (mini|(su|hi)per)?mercado, podemos encotrar, mercado, minimercado, supermercado e hipermercado.
O oitavo, nono, décimo e décimo primeiro exemplos, mostram bem a utilização dos grupos e retrovisores, no oitavo exemplo temos, (lenta)(mente) é \2 \1, neste exemplo é fácil identificar quem é o primeiro retrovisor (lenta) e quem é o segundo (mente), casando então com a frase, lentamente é mente lenta, já no décimo primeiro exemplo, ((((a)b)c)d)-1 = \1,\2,\3,\4, esta diferenciação não é tão fácil assim, então para facilitar vamos por partes, como definição podemos dizer que o primeiro retrovisor se inicia no primeiro grupo, ou seja, no primeiro parêntese, e termina com o término deste grupo, e assim por diante, seguindo estes passos temos que o primeiro retrovisor é a expressão, (((a)b)c)d, ou ainda a palavra, abcd, já o segundo retrovisor, é ((a)b)c, ou ainda, abc, o terceiro é, (a)b, ou ab e o quarto retrovisor é, (a), ou ainda apenas a, então a expressão, ((((a)b)c)d)-1 = \1,\2,\3,\4, irá casar com o texto abcd-1 = abcd,abc,ab,a, simples não?
Como o intuito deste artigo foi apresentar de forma simples e rápida alguns detalhes da Apresentação de Expressões Regulares que apresentei aos colaboradores do departamento de tecnologia da Webroom e também das Expressões Regulares, vou terminando por aqui, lembrando aqueles que querem aprender mais sobre o assunto, leiam o livro Guia de Expressões Regulares.
Para aqueles que estão se aventurando no mundo das Expressões Regulares, recomento um excelente programa para testar suas Expressões Regulares, o programa é o Expresso.
Espero que tenham gostado e qualquer dúvida estou aqui para tentar resolver.
Tags: Dicas Expressões Regulares JavaScript Tecnologia Tutorial
1 ano do primeiro artigo e uma pequena restrospectiva
Por: Saturday 26 August 2006 às 11:23 AM
O tempo passa rápido, parece que foi ontem que comecei a escrever neste blog, mas pelo contrário, dia 26/08/2005 foi a data em que publiquei o meu primeiro artigo neste blog, na verdade não foi bem uma artigo, pois falava sobre um acontecimento muito especial na minha vida que foi o Meu noivado.
Agradeço inicialmente ao Henrique, pela força na criação dos blogs e pelo layout que é de sua autoria, à Webroom pelo apoio, e à todos que visitam e comentam no blog, nunca pensei teria muita visitação, mas me surpreendi neste tempo, mas este assunto fica para uma outra vez.
Não escrevi o tanto que gostaria de ter escrito, mas tenho certeza que com o tempo estarei escrevendo mais, e espero que sejam artigos de qualidade, aproveitando este 1 aninho de vida, vou fazer uma pequena restrospectiva de alguns artigos que particularmente acho muito interessante deste periodo.
Um artigo que gostei de escrever e que parece ter contribuido para facilitar certas tarefas, foi o Validações e Expressões Regulares, onde abordei o uso de expressões regulares juntamente com a validação de uma data, um dos benefícios foi reduzir bastante o tamanho do código a ser utilizado para validar uma data.
Uma dica que nem eu sabia que era possível, e que me ajudou bastante ao mexer com PHP foi o artigo, Postar Array no PHP, que explica uma forma fácil e rápida de postar um array em PHP de uma página para outra.
Um artigo que escrevi querendo mostrar algumas dicas para melhorar as buscas no Google e outras dicas de utilização do Gmail, e que sem sombra de dúvidas é o artigo mais visitado e comentado neste blog foi o, Tutoriais Google e Gmail, pois muita gente que está querendo abrir uma conta no Gmail e digita apalavra gmail, encontra este artigo, que já figurou na segunda página, e hoje está na terceira página de 198.000.000 de resultados.
Outro artigo que eu descobri, testei e depois escrevi sobre ele foi Firefox 1.5 todas as externsões, que tratava de algumas incompatibilidades da versão 1.5 do Firefox com algumas extensões, e mostrava um pequeno passo a passo para resolver este problema, quando a versão 2 sair pode ser que seja útil este artigo
, o mais legal foi que o autor original do artigo, Stuart Colville, atualizou o seu artigo e deixou o meu link como tradução para o Português.
Outro artigo que foi bem interessante, AJAX e PHP! Meus primeiros passos, onde falei um pouco sobre AJAX (Asynchronous JavaScript And XML) e alguns frameworks, ou melhor dizendo, bibliotecas para facilitar o uso de AJAX (Asynchronous JavaScript And XML).
Outro artigo que também envolve AJAX foi o Exemplos de AJAX em PHP utilizando XAJAX, onde desenvolvi uma página de exemplo, expliquei cada página e disponibilizei o código para download.
Estes foram alguns artigos que escrevi neste primeiro ano de vida do blog, espero poder continuar escrevendo muito mais e por muito tempo ainda.
Tags: AJAX Dicas Expressões Regulares Extensões Firefox Google JavaScript Parabéns PHP Programação Tecnologia XHTML
Validações e Expressões Regulares
Por: Wednesday 31 August 2005 às 9:17 AM
Minha intensão com este post não é explicar tudo sobre o assunto, pois seria muita pretensão da minha parte, apenas quero mostrar as utilidades e facilidades de se usar Expressões regulares.
Expressão regular é um método formal de se especificar um padrão de texto, ou seja, é uma composição de símbolos, caracteres com funções especiais, que, agrupados entre si e com caracteres literais, formam uma seqüência, uma expressão. Essa expressão é interpretada como uma regra, que indicará sucesso se uma entrada de dados qualquer casar com essa regra, ou seja, obedecer exatamente a todas as suas condições.
Esta definição e o exemplo foram retirados do Guia de Expressões Regulares do Aurélio Marinho Jargas.
Ou seja com expressões regulares podemos procurar padrões em textos bastando para isso, construirmos uma expressão adequada, ou então, como mostrarei abaixo, podemos utilizar expressões regulares para validar formatos.
Mas como assim validar formatos?
Vamos construir uma expressão regular para validar uma data, exemplo completo nesta página do Guia de Expressões Regulares.
O que é uma data? Considerando o padrão brasileiro, é uma seqüência de dois números uma barra mais dois números mais uma barra e mais quatro números, em suma podemos dizer que 99/99/9999 representa o formato de uma data!
Como o meu intuito não é ensinar, mas sim dispertar o interesse sobre o assunto, vou partir do resultado final, se vocês querem aprender sobre Expressões Regulares, recomendo que leiam o Guia de Expressões Regulares.
Uma Expressão Regular que pode ser utilizada para validar uma data é a seguinte (Seguindo uma sugestão do Aurélio, vou colocar a expressão mais espaçada para facilitar o entendimento):
( 0[1-9]|[12][0-9]|3[01] ) /
( 0[1-9]|1[012] ) /
[12][0-9]{3}
Nossa mas o que é isso? Calma que eu vou tentar explicar, mas é melhor irmos por partes:
1º) Para validar os dias utilizamos -> (0[1-9]|[12][0-9]|3[01]), significa que a expressão considera válido tudo aquilo que iniciar com 0 (zero) e vier seguido de qualquer número de 1 a 9 ([1-9]) ou então ( | ) tudo que iniciar com 1 ou 2 ([12]) e vier seguido de qualquer número de 0 a 9 ([0-9]) ou então ( | ) tudo que iniciar com 3 e vier seguido de 0 ou 1 ([01]), o que significa que esta expressão só reconhece como válido números entre 01 e 31, ou seja, tirando alguns meses particulares validamos qualquer dia de uma data.
2º) A validação dos meses é semelhante -> (0[1-9]|1[012]), ou seja, reconhece como válido números entre 01 e 12, não preciso mais me preocupar com qualquer mês que seja digitado na data.
3º) Para validar o ano utilizamos -> ([12][0-9]{3}), significa que a expressão reconhece como válido qualquer número que se inicie com 1 ou 2 ([12]) seguidos de números entre 0 e 9 ([0-9]), sendo que estes se repetem 3 vezes ({3}), ou seja, reconhece como válido números entre 1000 e 2999.
4º) Já ia me esquecendo das barrinhas (/) que devido a sua posição, apenas reconhece como válido datas digitadas no formato dd/mm/yyyy.
Que conclusão podemos tirar?
Que com apenas uma linha não tão complexa assim, podemos praticamente validar qualquer data, é lógico que temos que levar em conta os meses que não tem 31 dias e também fevereiro que se for um ano bissexto tem 29 dias e se não for ano bissexto tem 28 dias, mas tirando estes pequenos detalhes com apenas uma linha faço a análise se a uma data é ou não válida.
Para aqueles que se interessarem fiz a função que valida data, utilizando a expressão regular acima, e validando também os meses que não tem 31 dias e também o mês de fevereiro, considerando se é ou não bissexto, nunca vi isso antes num blog, mas vou colocar um campo para testes, lembrando que o formato da data é dd/mm/yyyy.
Fiquem a vontade, para baixar e usar a função, apenas gostaria de um retorno, informando se a função atendeu bem às necessidades, ou se ela tem algum erro, fiquem a vontade para comentar se a função estiver errada. Download
[update 26/03/2006 16:10] Corrigido o link de download do script de validação de data [/update]
Lista de tags usadas neste site:
- 2015
- AdSense
- AJAX
- Amazon
- Apple
- Banco
- Banco de Dados
- bash
- BlogDay2006
- Brasil
- Buscas
- Campanha
- Campanha FEED-SE
- Cartão
- Celular
- Charges.com.br
- Charsets
- Content Negotiation
- Crosswords
- del.icio.us
- Dicas
- DOM
- Download
- e-book
- Encodings
- Epic
- Estatísticas
- Expressões Regulares
- Extensões
- Feed Completo
- Feed Parcial
- FeedBurner
- Feeds
- Firefox
- Fluxograma
- Futsal
- Futuro
- GIMP
- Google Analytics
- Guia do Hardware.NET
- História
- IE7
- Imagem
- Impressão
- Internet
- iPhone
- iPhone 3G
- iPod
- Japs
- JavaScript
- Lasanha
- links
- Links Comentados
- Linux
- Mac OS X
- Música
- Microsoft
- MIME
- Mobile
- MySQL
- OPML
- Orkut
- Parabéns
- PayPal
- Pós
- Pessoal
- PHP
- Primeiras Impressões
- ProBlogger
- Programação
- Prototype
- Reflexão
- Revista
- Segurança
- Senha
- SEO
- Shell
- Software Livre
- SPAM
- ssh
- Tecnologia
- Tutorial
- Ubuntu
- Validações
- web2.0
- Webinsider
- Wikipedia
- Windows
- Windows Vista
- Wordpress
- WURFL
- XHTML
- Youtube
- Zoundry














