2013-06-07 13 views
14

jaka funkcja zmieni się usunąć dodatkowe spacje w ciągu znaków javascript

 this contains  spaces
w
this contains spaces
przy użyciu javascript?

Próbowałem następujących rzeczy, używając podobnych pytań SO, ale nie mogłem tego uruchomić.

var string = " this contains spaces "; 

newString = string.replace(/\s+/g,''); // "thiscontainsspaces" 
newString = string.replace(/ +/g,''); //"thiscontainsspaces" 


Edytował pytanie, aby bardziej skupić się na aspekcie javascript. Czy istnieje prosty prosty sposób javascript, aby to osiągnąć?

+1

Spójrz na użycie underscore.string, istnieje wiele takich czystych metod, które pomogą Ci, nie wymagają podkreślenia. – adrian

Odpowiedz

38

Jesteś blisko.

Pamiętaj, że replacezastępuje znaleziony tekst z drugim argumentem. A więc:

newString = string.replace(/\s+/g,''); // "thiscontainsspaces" 

Znajduje dowolną liczbę kolejnych spacji i usuwa je. Zamiast tego spróbuj zastąpić je pojedynczym miejscem!

newString = string.replace(/\s+/g,' ').trim(); 
+0

dzięki! to ma sens ... btw brakuje tej funkcji do przycinania (pierwsze i ostatnie pojedyncze spacje) :) –

+2

To prawda, ale wiesz co robić :) – Hamish

11
string.replace(/\s+/g, ' ').trim() 
4

zorientowali się w jedną stronę, ale jestem ciekaw, czy istnieje lepszy sposób ...

string.replace(/\s+/g,' ').trim() 
+0

Konwertuj na tablicę bajtów, ręcznie iteruj przez nią i wyprowadź ją do nowej tablicy bajtów. Konwertuj nową tablicę na ciąg .... lepiej? – dlamblin

+0

To jest czysty JS, a nie jQuery. –

Powiązane problemy