Hapus spasi di dalam string di javascript

101

Saya telah membaca pertanyaan tentang trim javascript, dengan jawaban regex.

Lalu saya berharap trim untuk menghapus ruang dalam antara Hello dan World.

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

DIEDIT

Kenapa aku mengharapkan itu !?

Omong kosong! Jelas trim tidak menghilangkan ruang dalam !, hanya yang di depan dan di belakang, begitulah cara kerja trim, maka ini adalah pertanyaan yang sangat salah, maaf.

Hernán Eche
sumber
10
trim menghapus spasi kosong dari awal dan akhir string
Manse
3
Trim menghapus spasi dari sebelum dan sesudah string. Hello Worldsudah "dipangkas '.
Roket Hazmat
@limelights Untuk Menampilkan "HelloWorld" alih-alih "Hello World"
Hernán Eche
4
@void: Itu bukan "pemangkasan", itu masalah yang berbeda.
Roket Hazmat

Jawaban:

236

Untuk penggunaan penghapusan karakter spasi

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

untuk semua ruang putih gunakan saran oleh Rocket di komentar di bawah!

Henrik Andersson
sumber
137
Anda mungkin ingin menggunakan .replace(/ /g, '')jika ada lebih dari sekali ruang.
Roket Hazmat
@Rocket, itu benar sekali, hanya jawaban yang belum diperbarui! Terima kasih! :)
Henrik Andersson
47
@Juhana: Jika Anda ingin menghapus spasi lain juga kemudian melakukan: .replace(/\s/g, '').
Roket Hazmat
12
@Rocket ya! jawaban yang benar! meskipun ini mungkin sedikit lebih efisien: str.replace (/ \ s + / g, '')
jackocnr
3
@PitchiahNatarajan \sakan mencocokkan spasi, tab, dan baris baru.
Rocket Hazmat
8

Mungkin karena Anda lupa menerapkan solusi dalam jawaban yang diterima . Itulah kode yang membuatnya trim()berhasil.

memperbarui

Jawaban ini hanya berlaku untuk browser lama. Browser yang lebih baru tampaknya mendukung trim()secara native.

John Conde
sumber
2
Belum tentu, beberapa browser memiliki itu di dalamnya. :-P
Rocket Hazmat
1
Hadir di sebagian besar browser modern sekarang -> kangax.github.com/es5-compat-table
Manse
1

Anda dapat menggunakan metode Ganti string dengan ekspresi reguler.

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

Metode replace () mengembalikan string baru dengan beberapa atau semua kecocokan pola diganti dengan penggantinya. Polanya bisa berupa string atau RegExp

RegExp

  • / / - Spasi yang cocok untuk ekspresi reguler

  • g - Bendera global; temukan semua kecocokan daripada berhenti setelah kecocokan pertama

JSON C11
sumber
1

Kamu bisa memakai

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

trim()hanya menghilangkan spasi pada string (pertama dan terakhir pada rantai). Dalam hal ini regExp ini lebih cepat karena Anda dapat menghapus satu atau lebih spasi secara bersamaan.

Jika Anda mengubah string kosong pengganti menjadi '$', perbedaannya menjadi lebih jelas:

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$

Perbandingan kinerja - /\s+/glebih cepat. Lihat di sini: http://jsperf.com/s-vs-s

ArlanG
sumber
The jawaban yang diterima saat ini melakukan hal yang sama. Harap tunjukkan beberapa tes relevan yang menunjukkan ini lebih cepat dari jawaban itu dengan lebih dari nanodetik.
Monyet Sesat
@HereticMonkey Diperbarui!
ArlanG