Bagaimana cara memotong string dalam JavaScript?
javascript
string
trim
Vinod
sumber
sumber
String.trim()
juga berfungsi dengan baik di luar kotak di Node.js.String.trim()
metode kelas, tidak ada di ES5 / Node.js; sebaliknya,String.prototype.trim()
metode instance, ada. Penggunaan:,' foo '.trim()
tidakString.trim(' foo ')
.$.trim(str)
selalu tersedia.Jawaban:
Semua browser sejak IE9 + miliki
trim()
metode untuk string.Untuk browser yang tidak mendukung
trim()
, Anda dapat menggunakan polyfill ini dari MDN :Yang mengatakan, jika menggunakan
jQuery
,$.trim(str)
juga tersedia dan menangani undefined / null.Lihat ini:
sumber
$.trim(str)
selalu tersedia.Trim dari jQuery nyaman jika Anda sudah menggunakan kerangka kerja itu.
Saya cenderung sering menggunakan jQuery, jadi memangkas string dengan itu wajar bagi saya. Tapi mungkin saja ada reaksi balik terhadap jQuery di luar sana? :)
sumber
Meskipun ada banyak jawaban yang benar di atas, perlu dicatat bahwa
String
objek dalam JavaScript memiliki.trim()
metode asli pada ECMAScript 5 . Jadi idealnya setiap upaya untuk prototipe metode trim harus benar-benar memeriksa untuk melihat apakah sudah ada terlebih dahulu.Ditambahkan secara native di: JavaScript 1.8.1 / ECMAScript 5
Dengan demikian didukung dalam:
Firefox: 3.5+
Safari: 5+
Internet Explorer: IE9 + (hanya dalam mode Standar!) Http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more .aspx
Chrome: 5+
Opera: 10.5+
Tabel Dukungan ECMAScript 5: http://kangax.github.com/es5-compat-table/
sumber
Ada banyak implementasi yang bisa digunakan. Tampaknya yang paling jelas adalah sesuatu seperti ini:
sumber
Versi sederhana di sini Apa fungsi umum untuk trim JavaScript?
sumber
Saya tahu pertanyaan ini telah ditanyakan tiga tahun lalu. Sekarang,
String.trim()
ditambahkan secara native di JavaScript. Sebagai contoh, Anda dapat memotong langsung sebagai berikut,sumber
Jika Anda menggunakan jQuery, gunakan
jQuery.trim()
fungsinya. Sebagai contoh:sumber
Flagrant Badassery memiliki 11 trim yang berbeda dengan informasi benchmark:
http://blog.stevenlevithan.com/archives/faster-trim-javascript
Yang tidak mengejutkan berbasis regexp lebih lambat daripada loop tradisional.
Ini salah satu pribadi saya. Kode ini sudah tua! Saya menulisnya untuk JavaScript1.1 dan Netscape 3 dan sejak itu baru sedikit diperbarui. (Asli menggunakan String.charAt)
sumber
Gunakan Metode asli JavaScript:
String.trimLeft()
,String.trimRight()
, danString.trim()
.String.trim()
didukung di IE9 + dan semua browser utama lainnya :String.trimLeft()
danString.trimRight()
tidak standar, tetapi didukung di semua browser utama kecuali IEDukungan IE mudah dilakukan dengan polyfill:
sumber
trimLeft
atautrimRight
.lTrim()
danrTrim()
metode.Tanpa malu-malu dicuri dari Matt duereg .
sumber
Sekarang, Anda dapat menggunakan string.trim () yang merupakan implementasi Javascript asli
Lihat juga
sumber
Potong kode dari proyek js sudut
dan menyebutnya sebagai
trim(" hello ")
sumber
cukup gunakan kode
Dukungan browser
Untuk browser lama, tambahkan prototipe
sumber
replace
fungsi regexp. saya tidak mengerti sepenuhnya. Anda ingin menjelaskannya lebih banyak tentang bagian regexp?Inilah cara yang sangat sederhana:
sumber
trim
seharusnya hanya menghapus spasi spasi awal dan akhir (yang mencakup tab dan karakter lainnya). Ini malah menghapus semua ruang, termasuk yang ada di tengah.Menggunakan
trim()
pada String yang merupakan asli bisa menjadi cara termudah:sumber
Anda bisa mendeklarasikan variabel Anda sebagai string dan menggunakan fungsi trimnya:
sumber
Hari ini, hampir semua browser mendukung
String.prototype.trim()
.Anda menggunakannya seperti ini:
Jika Anda mungkin masih perlu mendukung browser lama yang tidak mendukung fitur ini, ini adalah polyfill yang disarankan oleh MDN:
sumber
Saya memiliki lib yang menggunakan trim. jadi selesaikan dengan menggunakan kode berikut.
sumber
.trim()
metode itu sama dengan asliString.prototype.trim
yang telah ditetapkanreturn jQuery.trim(this)
, sehingga menciptakan stack overflow.Dari jawaban sebelumnya, ini berbeda dengan menambahkan flag
m
.Bendera
m
akan mencari teks beberapa linier. Dalam mode ini, tanda awal dan akhir pola (^
$
) dimasukkan sebelum dan sesudah karakter baris baru (\n
).sumber
Anda dapat melakukannya menggunakan JavaScript biasa:
sumber
Sekarang trim () build dalam javascript.
cukup konsol atau cetak kode maka nama Anda akan dipangkas juga.
sumber
Tidak tahu bug apa yang bisa disembunyikan di sini, tapi saya menggunakan ini:
Atau ini, jika teks berisi masuk:
Usaha lain:
sumber
Ini dia di TypeScript:
Ini akan jatuh kembali ke regex jika prototipe asli tidak tersedia.
sumber
Saya telah menulis fungsi ini untuk trim, ketika fungsi .trim () tidak tersedia di JS pada tahun 2008 lalu. Beberapa browser lama masih tidak mendukung fungsi .trim () dan saya berharap fungsi ini dapat membantu seseorang.
FUNGSI POTONG
Penjelasan : Trim fungsi () menerima objek string dan menghapus spasi spasi awal dan akhir (spasi, tab, dan baris baru) dan mengembalikan string yang dipangkas. Anda dapat menggunakan fungsi ini untuk memotong input formulir untuk memastikan data yang valid akan dikirim.
Fungsi ini dapat dipanggil dengan cara berikut sebagai contoh.
sumber
tambang menggunakan regex tunggal untuk mencari kasus di mana pemangkasan diperlukan, dan menggunakan hasil regex itu untuk menentukan batas substring yang diinginkan:
satu keputusan desain yang digunakan adalah menggunakan substring untuk melakukan tangkapan akhir. s / \?: // (membuat penangkapan jangka menengah) dan dan fragmen pengganti menjadi:
ada dua taruhan kinerja yang saya buat di impl ini:
apakah implementasi substring menyalin data string asli? jika demikian, di pertama, ketika string harus dipangkas ada dua traversal, pertama di regex (yang mungkin, semoga sebagian), dan kedua dalam ekstraksi substring. semoga implementasi substring hanya mereferensikan string asli, sehingga operasi seperti substring bisa hampir gratis. menyilangkan jari
seberapa bagus tangkapan di regex impl? jangka menengah, nilai output, bisa berpotensi sangat lama. saya tidak siap untuk bank bahwa menangkap semua regex impls 'tidak akan menolak pada beberapa ratus KB masukan input, tetapi saya juga tidak menguji (terlalu banyak runtimes, maaf!). SELALU kedua menjalankan penangkapan; jika mesin Anda dapat melakukan ini tanpa membentur, mungkin menggunakan beberapa teknik pengikatan tali di atas, pasti MENGGUNAKANNYA!
sumber
Untuk IE9 + dan browser lainnya
sumber