Javascript – Retirando espaços de string (função trim)

Postado por: Luiz Paulo em

Veja 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.

Posts Relacionados

Confira também outros artigos interessantes postados aqui no blog.

Gostou desse post?

Assine o nosso Feed RSS, siga-nos no Twitter, ou simplesmente nos recomende a seus amigos!

Sobre Luiz Paulo

Luiz Paulo dos Prazeres é desenvolvedor web desde 2000. Atualmente trabalha na Automatos junto à equipe de site desenvolvendo projetos web2.0 e utilizando como server-side a linguagem java.

7 Responses to “Javascript – Retirando espaços de string (função trim)”

  1. Einstein disse:

    Valeu pela dica. Me ajudou bastante num problema que eu estava tendo quando comparava uns itens em um arquivo txt com um switch.

  2. Gustavo Baesa disse:

    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;
    }
    }

    • rodrigo disse:

      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.

    • rodrigo disse:

      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.

  3. Matt Revier disse:

    Better to war out than to rust out.

  4. A função Trim foi útil para mim, obrigado.

Leave a Reply