Pengenalan
Menambahkan padding pada rentetan boleh menjadi tugas yang perlu atas pelbagai sebab, seperti penjajaran atau pemformatan. Artikel ini meneroka cara melapik rentetan pada panjang yang ditentukan dalam JavaScript.
Penyelesaian ES8
ECMAScript 2017 (ES8) memperkenalkan String.padStart, menjadikan padding rentetan menjadi mudah. Sintaksnya ialah:
string.padStart(targetLength, [padString])
Contoh:
"Jonas".padStart(10); // Default pad string is a space "42".padStart(6, "0"); // Pad with "0" "*".padStart(8, "-/|\"); // produces '-/|\-/|*'
Polyfill untuk Penyemak Imbas Pra-ES8
Untuk penyemak imbas yang tidak menyokong ES8, polyfill boleh digunakan:
String.prototype.padStart = function (targetLength, padString) { if (this.length >= targetLength) { return this; } padString = padString !== undefined ? padString : ' '; return padString.repeat((targetLength - this.length) / padString.length) + this; };
Penyelesaian Klasik
Sebelum ES8, pendekatan biasa melibatkan pendahuluan padding:
var n = 123 String("00000" + n).slice(-5); // returns 00123 ("00000" + n).slice(-5); // returns 00123 (" " + n).slice(-5); // returns " 123" (with two spaces)
Pelanjutan Objek Rentetan
Berikut ialah sambungan kepada String objek:
String.prototype.paddingLeft = function (paddingValue) { return String(paddingValue + this).slice(-paddingValue.length); };
Contoh Penggunaan:
function getFormattedTime(date) { var hours = date.getHours(); var minutes = date.getMinutes(); hours = hours.toString().paddingLeft("00"); minutes = minutes.toString().paddingLeft("00"); return "{0}:{1}".format(hours, minutes); }; String.prototype.format = function () { var args = arguments; return this.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
Ini mengembalikan masa dalam format "15:30".
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadkan Rentetan ke Panjang Tertentu dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!