Bagaimanakah Saya Boleh Memadam Rentetan dengan Cekap dalam JavaScript?

DDD
Lepaskan: 2024-11-23 12:31:17
asal
836 orang telah melayarinya

How Can I Efficiently Pad Strings in JavaScript?

Fungsi JavaScript untuk Padding Rentetan

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)
Salin selepas log masuk

Penyelesaian lain memanjangkan objek rentetan dengan kaedah paddingLeft:

String.prototype.paddingLeft = function (paddingValue) {
   return String(paddingValue + this).slice(-paddingValue.length);
};
Salin selepas log masuk

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;
    });
};
Salin selepas log masuk

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 '-/|\-/|*'
Salin selepas log masuk

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;
  }
};
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan