首頁 > web前端 > js教程 > 如何在 JavaScript 中高效地填充字串?

如何在 JavaScript 中高效地填充字串?

DDD
發布: 2024-11-23 12:31:17
原創
895 人瀏覽過

How Can I Efficiently Pad Strings in JavaScript?

用於字串填充的JavaScript 函數

簡介

填充字串涉及到在開頭或結尾添加字元以達到所需的長度。這在各種場景中都很有用,例如表格對齊或格式化數字。本文探討了一種有助於字串填充的 JavaScript 函數。

ES8 之前的解決方案

在 ECMAScript 8 (ES8) 之前,開發人員採用各種方法進行字串填充。一個簡單的方法是將字串與預先定義的填充值連接起來,然後對結果進行切片以獲得所需的長度:

var n = 123;

String("00000" + n).slice(-5); // returns 00123
("00000" + n).slice(-5); // returns 00123
("     " + n).slice(-5); // returns "  123" (with two spaces)
登入後複製

另一種解決方案使用paddingLeft 方法擴展字串物件:

String.prototype.paddingLeft = function (paddingValue) {
   return String(paddingValue + this).slice(-paddingValue.length);
};
登入後複製

此方法可以如下使用:

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和Beyond

ES8引入了String.padStart方法,它簡化了字串填充:

"Jonas".padStart(10); // Default pad string is a space
"42".padStart(6, "0"); // Pad with "0"
"*".padStart(8, "-/|\"); // produces '-/|\-/|*'
登入後複製

如果String.padStart不可用,可以使用polyfill來新增它。下面的polyfill擴充了字串物件:

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;
  }
};
登入後複製

以上是如何在 JavaScript 中高效地填充字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板