Javascript – Retirando espaços de string (função trim)
Postado por: Luiz Paulo emVeja abaixo algumas soluções para retirar espaços do início e final de strings.
Exemplos simples
Exemplo curto (funções com expressão regular):
//trim completo
function trim(str) {
return str.replace(/^\s+|\s+$/g,"");
}
//left trim
function ltrim(str) {
return str.replace(/^\s+/,"");
}
//right trim
function rtrim(str) {
return str.replace(/\s+$/,"");
}
alert(trim(" TEXTO "));
Exemplo curto (métodos da string com expressão regular):
Essa solução é bem mais elegante!
//trim completo
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g,"");
}
//left trim
String.prototype.ltrim = function () {
return this.replace(/^\s+/,"");
}
//right trim
String.prototype.rtrim = function () {
return this.replace(/\s+$/,"");
}
alert(" TEXTO ".trim());
Outras soluções
Exemplo longo
function trim (str)
{
var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
for (var i = 0; i = 0; i--)
{
if (whitespace.indexOf(str.charAt(i)) == -1)
{
str = str.substring(0, i + 1);
break;
}
}
return whitespace.indexOf(str.charAt(0)) == -1 ? str : '';
}
Outro exemplo
function isWhitespace(charToCheck) {
var whitespaceChars = " \t\n\r\f";
return (whitespaceChars.indexOf(charToCheck) != -1);
}
//left trim
function ltrim(str) {
for(var k = 0; k =0 && isWhitespace(str.charAt(j)) ; j--) ;
return str.substring(0,j+1);
}
//trim completo
function trim(str) {
return ltrim(rtrim(str));
}
Caso queira se aprofundar no assunto, aconselho a leitura do artigo Faster JavaScript Trim que mostra vários testes de performance no IE e FF.













Trim entrou no javascript 1.8 que entrou no Firefox 3.5
http://developer.mozilla.org/en/firefox_3.5_for_developers
Valeu pela dica. Me ajudou bastante num problema que eu estava tendo quando comparava uns itens em um arquivo txt com um switch.
Preciso acha uma função que me ajude quando usuario digitar somente um nome seja barrado, mais quando ele digitar o sobre nome ele passe, isso no mesmo campo ( objeto ). Grato Gsutavo Baesa
function umnome (objeto) {
var teste = objeto;
var contar = teste.length;
if (( contar < 1 ) || ( contar <10 )) {
return false;
}
}
Voce conhece alguem que tenha espaços no nome?
Mto simples, a logica é a seguite: Programe um evento para quando o cara pressionar a barra de espaços do teclado dentro de um campo após ter digitado algum texto, o cursor passar para outro campo na tela. Sacou? Dessa forma voce garante que sempre que ele apertar o espaço para digitar outra palavra, ela seja escrita em outro campo. Isso de uma forma bem simplificada, voce irá precisar fazer algumas verificaçoes para garantir que o usuário não vá bugar o seu formulário.
Estude sobre: onkeypressed, onkeyup, onfocus, onblur etc.
Claro que você pode se deparar com a situação onde a pessoa tenha um nome composto, tipo Ana Paula. Daí vai depender da regra de negocio do seu sistema.
Better to war out than to rust out.
A função Trim foi útil para mim, obrigado.