Links comentados via del.icio.us – 4
Por: Monday 23 October 2006 às 11:36 AM
Este é o quarto artigo de uma série que espero que seja mais duradoura ainda, nem acredito, já estamos no quarto capítulo dos links comentados do Japs, a primeira parte pode ser vista no artigo Links comentados via del.icio.us – 1, a segunda parte pode ser vista no artigo Links comentados via del.icio.us – 2 e a terceira parte pode ser vista no artigo Links comentados via del.icio.us – 3.
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.
O primeiro link de hoje: Manual Javascript programação, é um site com vários tutoriais interessantes, neste link específico estão os tutoriais de JavaScript, muito interessante como referência.
O segundo link de hoje: Performance no MySQL, é uma dica muito interessante, como o próprio nome diz, para medir a performance no MySQL, dica muito interessante para desenvolvedores.
O terceiro link de hoje, na verdade são dois links, muito interessantes que devem ser lidos: 10 dicas para ganhar dinheiro de verdade com seu site ou blog usando o Google Adsense (parte 1 de 2) e 10 dicas para ganhar dinheiro de verdade com seu site ou blog usando o Google Adsense (parte 2 de 2), são dois artigos muito interessantes que servem como dicas de utilização ao AdSense.
O quarto link de hoje: DHTML JavaScript Benchmark (DOM and innerHTML), que é uma comparação entre DOM e innerHTML, link muito interessante e muito útil para desenvolvedores.
O quinto link de hoje: Mais um método de conversão de caixa alta para caixa baixa, que é um script para converter, como o nome diz, caracteres em caixa alta para caixa baixa, o script foi desenvolvido para alterar nomes de arquivos, mas com um pouquinho de imaginação, pode ser utilizado de diversas formas.
O sexto link de hoje: Buscando Arquivos com Google.com, são algumas dicas para auxiliar as buscas no Google, outros artigos que podem ajudar suas buscas são: Algumas dicas para otimizar suas buscas no Google e Tutoriais Google e Gmail.
O sétimo link de hoje: Del.icio.us para ler offline, o Elcio postou esta dica muito interessante para você poder acessar seu del.icio.us mesmo estando offline, outra utilização muito importante é ter um backup de seus links, pelo menos eu acho importante.
O oitavo link de hoje: Introdução ao SEO #4: métodos de SEO “off-site” é mais um artigo de SEO, vale a pena conferir.
O nono link de hoje: New HTML Validation Service, como o próprio nome diz, um novo serviço de validação de html, fica ai a dica para os desenvolvedores.
O décimo link de hoje: To BCC or Not to BCC, é mais uma imagem, muito legal retirada do site bLaugh.
Espero que tenham gostado destas indicações e quem quiser continuar recebendo os links que adiciono via del.icio.us em seu feed, basta assinar o Del.icio.us do Japs.
Tags: AJAX AdSense DOM Dicas Google Imagem JavaScript Links Comentados Linux MySQL SEO Tecnologia Validações del.icio.us
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
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















