JavaScript'te bir dizenin içindeki boşlukları kaldırın


108

Javascript düzeltmesiyle ilgili bu soruyu bir regex cevabı ile okudum .

O zaman trim'in Merhaba ve Dünya arasındaki boşluğu kaldırmasını bekliyorum .

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

DÜZENLENDİ

Neden bunu bekliyordum !?

Saçmalık! Açıkçası döşeme iç boşlukları kaldırmaz!, Sadece önde gelen ve sonrakiler, bu şekilde işliyor, o zaman bu çok yanlış bir soruydu, özür dilerim.


10
trim bir dizenin başındaki ve sonundaki boşlukları kaldırır
Manse

3
Kırp , dizeden önceki ve sonraki boşlukları kaldırır . Hello Worldzaten "kırpılmış".
Rocket Hazmat

@limelights "Merhaba Dünya" yerine "Merhaba Dünya"
Gösterecek

4
@void: Bu "kırpma" değil, bu farklı bir sorun.
Rocket Hazmat

Yanıtlar:


244

Boşluk karakteri kaldırmak için kullanın

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

tüm beyaz boşluklar için aşağıdaki yorumlarda Rocket'ın önerisini kullanın!


142
.replace(/ /g, '')Birden fazla boşluk varsa kullanmak isteyebilirsiniz .
Rocket Hazmat

@Rocket, bu kesinlikle doğru, henüz güncellenmiş cevap yok! Teşekkürler! :)
Henrik Andersson

47
@Juhana: Çok başka boşluk kaldırmak istiyorsanız o zaman yapın: .replace(/\s/g, '').
Rocket Hazmat

12
@RocketHazmat evet! doğru cevap! ancak bu biraz daha verimli olabilir: str.replace (/ \ s + / g, '')
jackocnr

3
@PitchiahNatarajan \sboşluklar, sekmeler ve yeni satırlarla eşleşecek.
Rocket Hazmat


2

Kullanabilirsiniz

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

trim()yalnızca dizedeki sondaki boşlukları kaldırır (zincirdeki ilk ve sonuncu). Bu durumda bu regExp daha hızlıdır çünkü aynı anda bir veya daha fazla boşluğu kaldırabilirsiniz.

Değiştirilen boş dizeyi "$" olarak değiştirirseniz, fark çok daha net hale gelir:

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#

Performans karşılaştırması - /\s+/gdaha hızlıdır. Buraya bakın: http://jsperf.com/s-vs-s


Şu anda kabul edilen cevap aynı şeyi yapıyor. Lütfen bunun nanosaniyeden daha hızlı cevaptan daha hızlı olduğunu gösteren bazı ilgili testleri sunun.
Heretic Maymun

@HereticMonkey Güncellendi!
ArlanG

1

Strings replace yöntemini bir normal ifadeyle kullanabilirsiniz.

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

Replace () yöntemi, bir modelin bazı veya tüm eşleşmelerinin bir değiştirmeyle değiştirildiği yeni bir dize döndürür. Kalıp bir dize veya RegExp olabilir

RegExp

  • / / - Normal ifade eşleşen boşluklar

  • g - Küresel bayrak; ilk maçtan sonra durmak yerine tüm maçları bul

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.