Remova os espaços em branco dentro de uma string em javascript


101

Eu li esta pergunta sobre corte de javascript, com uma resposta regex.

Então, espero que o corte remova o espaço interno entre Hello e World.

function myFunction() {
    alert("Hello World ".trim());
}

EDITADO

Por que eu esperava isso !?

Absurdo! Obviamente, o trim não remove os espaços internos !, apenas os que estão à frente e atrás, é assim que o trim funciona, então essa era uma pergunta muito errada, minhas desculpas.


10
trim remove os espaços em branco do início e do final de uma string
Manse

3
O corte remove os espaços em branco antes e depois de uma string. Hello Worldjá está "aparado".
Foguete Hazmat

@limelights para mostrar "HelloWorld" em vez de "Hello World"
Hernán Eche

4
@void: Isso não é "aparar", é um problema diferente.
Rocket Hazmat

Respostas:


236

Para uso de remoção de espaço

"hello world".replace(/\s/g, "");

para todos os espaços em branco use a sugestão da Rocket nos comentários abaixo!


137
Você pode querer usar .replace(/ /g, '')se houver mais de uma vez.
Rocket Hazmat

@Rocket, isso é absolutamente verdade, só não tenho uma resposta atualizada ainda! Obrigado! :)
Henrik Andersson

47
@Juhana: Se você deseja remover outros espaços em branco também, em seguida, fazer: .replace(/\s/g, '').
Rocket Hazmat

12
@RocketHazmat yes! a resposta correta! embora isso possa ser um pouco mais eficiente: str.replace (/ \ s + / g, '')
jackocnr

3
@PitchiahNatarajan \sirá corresponder a espaços, tabulações e novas linhas.
Rocket Hazmat de


1

Você pode usar o método de substituição de Strings com uma expressão regular.

"Hello World ".replace(/ /g, "");

O método replace () retorna uma nova string com algumas ou todas as correspondências de um padrão substituídas por uma substituição. O padrão pode ser uma string ou RegExp

RegExp

  • / / - Expressão regular correspondendo a espaços

  • g - Bandeira global; encontre todas as correspondências em vez de parar após a primeira


1

Você pode usar

"Hello World ".replace(/\s+/g, '');

trim()remove apenas espaços finais na string (primeiro e último na cadeia). Neste caso, esta regExp é mais rápida porque você pode remover um ou mais espaços ao mesmo tempo.

Se você alterar a string vazia de substituição para '$', a diferença se torna muito mais clara:

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // $Q$W$E$R$TY$

Comparação de desempenho - /\s+/gé mais rápido. Veja aqui: http://jsperf.com/s-vs-s


A resposta atualmente aceita faz a mesma coisa. Apresente alguns testes relevantes indicando que isso é mais rápido do que a resposta em mais do que nanossegundos.
Macaco herege

@HereticMonkey atualizado!
ArlanG
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.