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



