Jawaban:
Ini?
str = str.replace(/\s/g, '');
Contoh
var str = '/var/www/site/Brand new document.docx';
document.write( str.replace(/\s/g, '') );
Pembaruan: Berdasarkan pertanyaan ini, ini:
str = str.replace(/\s+/g, '');
adalah solusi yang lebih baik. Ini menghasilkan hasil yang sama, tetapi lebih cepat.
Regex
\s
adalah regex untuk "spasi putih", dan g
merupakan bendera "global", yang berarti cocok dengan SEMUA \s
(spasi putih).
Penjelasan yang bagus untuk +
dapat ditemukan di sini .
Sebagai catatan tambahan, Anda dapat mengganti konten antara tanda kutip tunggal dengan apa pun yang Anda inginkan, sehingga Anda dapat mengganti spasi dengan string lain.
.replace(/\s+/g, '')
lebih sering. Apakah ada perbedaan antara itu dan jawaban saya?
.replace(' ','')
akan berhasil. Sangat dihargai!
+
hanya memiliki 60 suara jika ada yang ingin memberi kredit kepadanya terlalu stackoverflow.com/a/5964427/4258817
.replace('/\s+/g', '')
karena akan mencoba menemukan string literal itu. Ini membuat saya tersandung sebelum ...
var a = b = " /var/www/site/Brand new document.docx ";
console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') );
Dua cara untuk melakukan ini!
PENDEK dan TERCEPAT :str.replace(/ /g, '');
Benchmark:
Di sini hasil saya - (2018.07.13) MacOs High Sierra 10.13.3 di Chrome 67.0.3396 (64-bit), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64-bit)):
String pendek mirip dengan contoh dari pertanyaan OP
Solusi tercepat di semua browser adalah / /g
(regexp1a) - Chrome 17.7M (operasi / detik), Safari 10.1M, Firefox 8.8M. Yang paling lambat untuk semua browser adalah split-join
solusi. Perubahan ke
\s
atau menambahkan +
atau i
untuk regexp memperlambat pengolahan.
Untuk string sekitar ~ 3 juta hasil karakter adalah:
Anda dapat menjalankannya di mesin Anda: https://jsperf.com/remove-string-spaces/1
Mengikuti jawaban @rsplak: sebenarnya, menggunakan split / join way lebih cepat daripada menggunakan regexp. Lihat kasus uji kinerja
Begitu
var result = text.split(' ').join('')
beroperasi lebih cepat daripada
var result = text.replace(/\s+/g, '')
Pada teks-teks kecil ini tidak relevan, tetapi untuk kasus-kasus ketika waktu penting, misalnya dalam analis teks, terutama ketika berinteraksi dengan pengguna, itu penting.
Di sisi lain, \s+
menangani variasi karakter ruang yang lebih luas. Di antara dengan \n
dan \t
, itu juga cocok dengan \u00a0
karakter, dan itulah yang
diaktifkan, saat mendapatkan teks textDomNode.nodeValue
.
Jadi saya pikir kesimpulan di sini dapat dibuat sebagai berikut: jika Anda hanya perlu mengganti spasi ' '
, gunakan split / gabung. Jika ada simbol kelas simbol yang berbeda - gunakanreplace(/\s+/g, '')
way faster
. menjalankan tes dan hanya 2,19% lebih cepat, di Firefox 61 saya.
var input = '/var/www/site/Brand new document.docx';
//remove space
input = input.replace(/\s/g, '');
//make string lower
input = input.toLowerCase();
alert(input);
var output = '/var/www/site/Brand new document.docx'.replace(/ /g, "");
or
var output = '/var/www/site/Brand new document.docx'.replace(/ /gi,"");
Catatan: Meskipun Anda menggunakan 'g' atau 'gi' untuk menghapus spasi, keduanya berperilaku sama.
Jika kita menggunakan 'g' di fungsi ganti, itu akan memeriksa kecocokan yang tepat. tetapi jika kita menggunakan 'gi', ia mengabaikan sensitivitas case.
untuk referensi klik di sini .
Regex + Ganti ()
Meskipun regex bisa lebih lambat, dalam banyak kasus pengembang hanya memanipulasi beberapa string sekaligus sehingga mempertimbangkan kecepatan tidak relevan. Meskipun / / lebih cepat dari / \ s /, memiliki 's' menjelaskan apa yang sedang terjadi ke pengembang lain mungkin lebih jelas.
let string = '/var/www/site/Brand new document.docx';
let path = string.replace(/\s/g, '');
// path => '/var/www/site/Brandnewdocument.docx'
Split () + Gabung ()
Menggunakan Split + Join memungkinkan untuk manipulasi dirantai lebih lanjut dari string.
let string = '/var/www/site/Brand new document.docx';
let path => string.split('').map(char => /(\s|\.)/.test(char) ? '/' : char).join('');
// "/var/www/site/Brand/new/document/docx";
" ahm ed ".split('').filter(e => e.trim().length).join('')