inicio mail me! sindicaci;ón

Archive for December, 2006

Trim() em javascript

A boa e velha função trim() é uma excelente pedida em qualquer linguagem, e chega a ser supreendente que javascript não a possua nativamente. Além de eliminar espaços em branco (assim como tabulações) de uma string, é também uma boa maneira pra se fazer algumas validações (como por exemplo verificar se um campo obrigatório não foi preenchido somente com espaços).

Já vi diversas implementações da função trim() – assim como de ltrim() e rtrim() – em javascript, mas acho que nenhuma tão elegante quanto a presente em http://www.somacon.com/p355.php.

String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, ”);
}

String.prototype.ltrim = function() {
return this.replace(/^\s+/, ”);
}

String.prototype.rtrim = function() {
return this.replace(/\s+$/, ”);
}

Utilizando-se de expressões regulares para fazer as substituições de espaços por vazio, o grande lance de elegância de código é utilizá-la como membro do protótipo do objeto String. Assim, basta chamar o método em qualquer váriavel do tipo String, como por exemplo variable.trim().

Ótima pedida para adicionar-se em um arquivo .js para incluir em todas as páginas.

Uma coisa que eu tentei rapidinho fazer e não consegui é adicionar ao protótipo de um objeto uma propriedade baseada em um método. Explico melhor por um exemplo: eu gostaria de adicionar uma propriedade booleana empty para realizar validação; a definiria baseada no resultado de trim(), algo mais ou menos como

String.prototype.empty = (this.trim().length == 0 ? true : false);

Criar a propriedade baseado em um valor é tranquilo (String.prototype.empty = false). Mas e baseado no resultado de uma função que foi definida no protótipo? Alguém sabe como?

Ouvindo: Epos – See thru You

Mudanças

Um blog deveria ser utilizado com mais freqüência. Mas eu, que já não sou pouco enrolado pra isso, ainda tive motivos nos últimos meses.

Deixei no final de setembro a VEGA IT. Continuo eventualmente envolvido com questões pontuais lá com o pessoal, mas já não faço mais parte do quadro oficial.

Trabalho agora na Cinq Technologies, no papel de analista/desenvolvedor. O foco do trabalho é que mudou bastante: de desenvolvedor web, trabalhando com PHP, passei a
desenvolvedor .NET em base Oracle.

O projeto é offshore (o cliente é uma empresa norte-americana) e tende a se transformar em um projeto de BI.

As expectativas são ótimas, a experiência tem sido excelente e estou aprendendo muito. Acho que tenho um bom caminho a traçar.

Em breve, novos posts sobre o que interessa: programação!