Saya mencoba menemukan cara untuk memangkas spasi dari awal dan akhir string judul. Saya menggunakan ini, tetapi sepertinya tidak berfungsi:
title = title.replace(/(^[\s]+|[\s]+$)/g, '');
Ada ide?
javascript
regex
James Jeffery
sumber
sumber
.trim
dibangun sekarang, jadi ini adalah jawaban untuk peramban modern: stackoverflow.com/a/3000900/29182function trim11 (str) { str = str.replace(/^\s+/, ''); for (var i = str.length - 1; i >= 0; i--) { if (/\S/.test(str.charAt(i))) { str = str.substring(0, i + 1); break; } } return str; }
Jawaban:
Catatan: Pada 2015, semua browser utama (termasuk IE> = 9) mendukung String.prototype.trim () . Ini berarti bahwa untuk sebagian besar kasus penggunaan, hanya melakukan
str.trim()
adalah cara terbaik untuk mencapai apa yang ditanyakan.Steven Levithan menganalisis berbagai implementasi
trim
dalam Javascript dalam hal kinerja.Rekomendasinya adalah:
untuk "implementasi tujuan umum yang merupakan browser lintas cepat", dan
+ msgstr "jika Anda ingin menangani string panjang dengan sangat cepat di semua browser".
Referensi
sumber
String.prototype.trim = String.prototype.trim || function trim() { return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); };
/^\s\s*/
dan bukan yang satu ini/^\s*/
trim1
dantrim11
?Jika menggunakan jQuery adalah opsi:
atau hanya:
sumber
Seperti yang disebutkan @ChaosPandion ,
String.prototype.trim
metode ini telah dimasukkan ke dalam Spesifikasi ECMAScript Edisi 5 , beberapa implementasi sudah menyertakan metode ini, jadi cara terbaik adalah mendeteksi implementasi asli dan mendeklarasikannya hanya jika itu tidak tersedia:Maka Anda cukup:
sumber
String.prototype.trim
tidak fungsi, itu tidak denganString.prototype.trim
metode yang dijelaskan pada ECMAScript 5th Edition Spesifikasi, jaminan spesifik yangtrim
merupakan objek fungsi pada lingkungan ES5.throw { name: "UnlikelyPolyfillException", message: "Did someone really write a property on the String prototype named 'trim' that isn't a ECMA 5 compatible shim? Come on now, that's crazy." }
Saya tahu ini adalah pos lama, tetapi saya pikir saya akan membagikan solusi kami. Dalam pencarian kode terpendek (tidak semua orang suka rege terse), orang dapat menggunakan:
BTW: Saya menjalankan tes yang sama melalui tautan yang dibagikan di atas blog.stevenlevithan.com - Trim JavaScript Lebih Cepat dan pola ini mengalahkan semua TANGAN lainnya!
Menggunakan IE8, tes ditambahkan sebagai test13. Hasilnya adalah:
sumber
ECMAScript 5 mendukung
trim
dan ini telah diterapkan di Firefox.trim - MDC
sumber
Di sini, ini harus melakukan semua yang Anda butuhkan
sumber
Berikut adalah beberapa metode yang telah saya gunakan di masa lalu untuk memangkas string dalam js:
sumber
^[\s*]+
cocok*
di awal string, sehingga trims fungsi Anda"*** Foo"
untuk"Foo"
.Ini kode saya saat ini, baris ke-2 berfungsi jika saya berkomentar pada baris ke-3, tetapi tidak berfungsi jika saya membiarkannya seperti itu.
sumber
Cukup gunakan
string.trim()
metode. Ini didukung oleh semua browser utama. Referensi di sini: http://www.w3schools.com/jsref/jsref_trim_string.aspsumber
jQuery.trim ("halo, apa kabar?");
:)
sumber
Ketika DOM dimuat penuh, Anda dapat menambahkan ini ke semua bidang teks. Saya tidak pernah memiliki situasi di mana saya perlu menyerahkan ruang terdepan atau tertinggal, jadi melakukannya sepanjang waktu secara global telah bekerja untuk saya ...
sumber
blur
benar - benar terjadi sebelum pengiriman ketika saya berada di bidang dan tekan <kbd> masukkan </kbd> untuk mengirim formulir?Inilah yang disarankan oleh Arsitek JavaScript / Guru Douglas Crockford.
Catatan: Anda harus mendefinisikan "metode" untuk Function.prototype.
kalau tidak
Pengamatan
Di browser terbaru, trim metode disertakan secara default. Jadi, Anda tidak perlu menambahkannya secara eksplisit.
Browser utama Chrome, Firefox, Safari dll mendukung metode trim . Diperiksa di Chrome 55.0.2883.95 (64-bit), Firefox 51.0.1 (64-bit), Safari 10.0 (12602.1.50.0.10).
sumber
sumber
percobaan rekursif untuk ini
sebut seperti ini:
jika Anda ingin memfilter karakter khusus, Anda dapat mendefinisikan string daftar pada dasarnya:
sumber
' '
, tetapi pertanyaannya adalah tentang ruang putih secara umum, termasuk"\n"
,"\t"
dan karakter tidak dapat dicetak lainnya yang cocok dengan regex oleh/\s/
.