Pertanyaan Pangkas string di JavaScript?


Bagaimana cara memangkas string dalam JavaScript?


1235
2018-01-31 15:12


asal


Jawaban:


Semua browser sejak IE9 + punya trim().

Untuk browser yang tidak mendukung trim(), Anda dapat menggunakan polyfill ini dari MDN:

if (!String.prototype.trim) {
    (function() {
        // Make sure we trim BOM and NBSP
        var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
        String.prototype.trim = function() {
            return this.replace(rtrim, '');
        };
    })();
}

Lihat ini:

String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g, '');};

String.prototype.ltrim=function(){return this.replace(/^\s+/,'');};

String.prototype.rtrim=function(){return this.replace(/\s+$/,'');};

String.prototype.fulltrim=function(){return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');};

857
2018-01-31 15:26



Trim dari jQuery nyaman jika Anda sudah menggunakan kerangka itu.

$.trim('  your string   ');

Saya cenderung menggunakan jQuery sering, sehingga pemangkasan string dengan itu wajar bagi saya. Tapi mungkin ada reaksi terhadap jQuery di luar sana? :)


475
2018-01-31 15:16



Meskipun ada banyak jawaban yang benar di atas, perlu dicatat bahwa String objek dalam JavaScript memiliki asli .trim() metode sebagai dari ECMAScript 5. Jadi idealnya setiap upaya untuk membuat prototipe metode trim harus benar-benar memeriksa untuk melihat apakah sudah ada terlebih dahulu.

if(!String.prototype.trim){  
  String.prototype.trim = function(){  
    return this.replace(/^\s+|\s+$/g,'');  
  };  
}

Ditambahkan secara asli 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/


160
2017-12-15 15:21



Ada banyak implementasi yang bisa digunakan. Yang paling jelas terlihat seperti ini:

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
};

" foo bar ".trim();  // "foo bar"

124
2018-01-31 15:14



Versi sederhana di sini Apa fungsi umum untuk trim JavaScript?

function trim(str) {
        return str.replace(/^\s+|\s+$/g,"");
}

45
2018-01-31 15:15



Saya tahu pertanyaan ini telah ditanyakan tiga tahun lalu. Sekarang,String.trim() ditambahkan secara bawaan di JavaScript. Sebagai contoh, Anda dapat memangkas langsung sebagai berikut,

document.getElementById("id").value.trim();

27
2018-01-25 11:02



Badassery Panggung memiliki 11 trim yang berbeda dengan informasi patokan:

http://blog.stevenlevithan.com/archives/faster-trim-javascript

Non-mengejutkan berbasis regexp lebih lambat dari loop tradisional.


Ini adalah milik pribadi saya. Kode ini sudah tua! Saya menulisnya untuk JavaScript1.1 dan Netscape 3 dan hanya sedikit diperbarui sejak itu. (Asli digunakan String.charAt)

/**
 *  Trim string. Actually trims all control characters.
 *  Ignores fancy Unicode spaces. Forces to string.
 */
function trim(str) {
    str = str.toString();
    var begin = 0;
    var end = str.length - 1;
    while (begin <= end && str.charCodeAt(begin) < 33) { ++begin; }
    while (end > begin && str.charCodeAt(end) < 33) { --end; }
    return str.substr(begin, end - begin + 1);
}

20
2018-03-10 13:38



Jika Anda menggunakan jQuery, gunakan jQuery.trim() fungsi. Sebagai contoh:

if( jQuery.trim(StringVariable) == '')

20
2017-08-18 13:38