Trim com expressão regular em JavaScript

2 respostas
rodrigues.danilo

Bom dia.

Hoje eu precisei fazer uma expressão regular para eliminar “espaços” nas bordas de uma String, o famos “trim”. Antes de começar a fazer, procurei na internet e vi algo do tipo:

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

Achei isso estranho. Pois aparentemente ele só trata espaços. O que acontece com outros caractes, como retorno, tabs e etc? Para resolver o problema substitui por:

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

Alguém, mais sábio em JavaScript, vê algum problema nesta implementação? Estou perguntando isso, pq vejo que tudo quanto é site implementa da maneira anterior.

Abs!

2 Respostas

T

http://www.regextester.com/jssyntax.html

\s = “whitespace” (ou seja, espaços, tabs, form feeds, carriage returns, line feeds, vertical tabs)

\W = “non - word characters” (ou seja, tudo que não for A-Z, a-z, 0-9, _

O que você achou na Internet é melhor que a sua substituição, porque sua proposta pode cortar outros caracteres como “,”, “-”, “;” etc.

rodrigues.danilo

Boa tarde.

\s = apenas espaços. Ele não está considerando retorno de linha, tabs e etc. Vou ter que melhorar um pouco mais em cima do \W, eu acho, assim posso considerar os sinais. Talvez \s com mais alguma coisa também resolva.

Abs!

Criado 16 de maio de 2008
Ultima resposta 16 de mai. de 2008
Respostas 2
Participantes 2