Função trim em javascript

A função trim é muito utilizada para tratar strings em várias linguagens, entretanto não há implementação padrão em Javascript.

Essa função consiste em retirar alguns caracteres (normalmente os espaços em branco, quebras de linha ou outros caracteres relevantes) do início e do fim da string, com a finalidade de torná-la limpa.

O trim recebe dois parâmetros normalmente, o primeiro com a string a ser tratada e o segundo com os caracteres que serão removidos dos extremos, concatenados. Segue abaixo a implementação em Javascript:

function trim(entrada, indesejados){
	var i, retorno;
	retorno = entrada;
	var cortePadrao = " \n\t\r";
	if (typeof(indesejados)=='undefined' || indesejados =='') {
		indesejados = cortePadrao;
	} else {
		indesejados += cortePadrao;
	}
 
	//limpando o início
    for (i = 0; i < retorno.length; i++) {
        if (indesejados.indexOf(retorno.charAt(i)) === -1) {
            retorno = retorno.substring(i);
            break;
        }
    }
 
	//limpando o fim
    for (i = (retorno.length - 1); i >= 0; i--) {
        if (indesejados.indexOf(retorno.charAt(i)) === -1) {
            retorno = retorno.substring(0, i + 1);
            break;
        }
    }
	return retorno;
}

Outra opção é a utilização de uma expressão regular apenas para tirar espaços em branco e afins das beiradas da string. Nesse caso o javascript ficaria bem mais simples:

function trim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}

Vale lembrar que se você estiver com a biblioteca do jQuery carregada por exemplo, a implementação já existe: jQuery.trim(str). Além disso alguns navegadores que implementam versões mais recentes do javascript possuem a função nativa. Entretanto contar com esse suporte faria seu site não ser funcional para uma parcela significativa dos usuários.