Pengenalan
Membuai rentetan melibatkan penambahan aksara pada permulaan atau akhir untuk mencapai panjang yang dikehendaki. Ini berguna dalam pelbagai senario, seperti penjajaran dalam jadual atau nombor pemformatan. Artikel ini meneroka fungsi JavaScript yang memudahkan padding rentetan.
Penyelesaian Pra-ES8
Sebelum ECMAScript 8 (ES8), pembangun menggunakan pelbagai kaedah untuk padding rentetan. Satu pendekatan mudah melibatkan menggabungkan rentetan dengan nilai padding yang telah ditetapkan dan menghiris hasilnya untuk mendapatkan panjang yang diingini:
var n = 123; String("00000" + n).slice(-5); // returns 00123 ("00000" + n).slice(-5); // returns 00123 (" " + n).slice(-5); // returns " 123" (with two spaces)
Penyelesaian lain memanjangkan objek rentetan dengan kaedah paddingLeft:
String.prototype.paddingLeft = function (paddingValue) { return String(paddingValue + this).slice(-paddingValue.length); };
Kaedah ini boleh digunakan seperti berikut:
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; }); };
ES8 dan Di luar
ES8 memperkenalkan kaedah String.padStart, yang memudahkan padding rentetan:
"Jonas".padStart(10); // Default pad string is a space "42".padStart(6, "0"); // Pad with "0" "*".padStart(8, "-/|\"); // produces '-/|\-/|*'
Jika String.padStart tidak tersedia, polyfill boleh digunakan untuk menambahkannya. Polifill berikut memanjangkan objek rentetan:
String.prototype.padLeft = function (desiredLength) { var padString = " "; if (arguments.length > 1) { padString = arguments[1]; } var padLength = desiredLength - this.length; if (padLength >= 0) { return padString.repeat(Math.ceil(padLength / padString.length)).slice(0, padLength) + this; } else { return this; } };
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memadam Rentetan dengan Cekap dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!