Apa's yang bersih dan efisien JavaScript pelaksanaan strip terkemuka dan trailing spasi dari string?
Misalnya:
" anjing"
"anjing "
" anjing "
" anjing "
semua bisa berubah menjadi
"anjing"
Gunakan ini:
if(typeof(String.prototype.trim) === "undefined")
{
String.prototype.trim = function()
{
return String(this).replace(/^\s+|\s+$/g, '');
};
}
Fungsi trim sekarang akan tersedia sebagai kelas fungsi pada string anda. Misalnya:
" dog".trim() === "dog" //true
EDIT: Mengambil J-P's saran untuk menggabungkan pola regex menjadi satu. Juga ditambahkan global pengubah per Christoph's saran.
Mengambil Matius Crumley's ide tentang sniffing pada fungsi trim sebelum menciptakan itu. Hal ini dilakukan dalam kasus versi JavaScript digunakan pada klien yang lebih baru dan oleh karena itu memiliki sendiri, asli fungsi trim.
Untuk jquery pengguna, bagaimana $.trim(s)
Gumbo sudah mencatat ini dalam komentar, tapi ini beruang mengulang sebagai jawaban: trim()
metode ditambahkan dalam JavaScript 1.8.1 dan didukung oleh semua browser modern (Firefox 3.5+, IE 9, Chrome 10, Safari 5.x), meskipun IE 8 dan yang lebih tua tidak mendukung itu. Penggunaan sederhana:
" foo\n\t ".trim() => "foo"
Lihat juga:
Lebih baik polyfill dari MDN yang mendukung penghapusan BOM dan NBSP:
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
}
Ingatlah bahwa memodifikasi built-in prototipe hadir dengan performa memukul (karena JS mesin menyerah pada sejumlah runtime optimasi), dan kinerja penting situasi anda mungkin perlu untuk mempertimbangkan alternatif mendefinisikan myTrimFunction(string)
sebagai gantinya. Bahwa menjadi kata, jika anda menargetkan yang lebih tua di lingkungan tanpa native .trim()
dukungan, anda cenderung memiliki lebih penting masalah kinerja untuk berurusan dengan.
Steven Levithan pernah menulis tentang bagaimana menerapkan lebih Cepat JavaScript Trim. Itu pasti layak lihat.
Jika anda're sudah menggunakan jQuery, maka anda mungkin ingin melihat-lihat di jQuery.trim()
yang sudah dilengkapi dengan jQuery.
Jika, daripada menulis kode baru untuk memangkas string, you're melihat kode yang ada yang menyebut "strip()" dan bertanya-tanya mengapa hal itu isn't bekerja, anda mungkin ingin memeriksa apakah ia mencoba untuk memasukkan sesuatu seperti prototypejs kerangka, dan pastikan itu's benar-benar mendapatkan dimuat. Kerangka itu menambahkan strip fungsi untuk semua objek String, tapi jika misalnya anda meng-upgrade dan halaman web anda masih mengacu ke yang lama .js file itu'll tentu saja tidak bekerja.