簡介
填充字串涉及到在開頭或結尾添加字元以達到所需的長度。這在各種場景中都很有用,例如表格對齊或格式化數字。本文探討了一種有助於字串填充的 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中文網其他相關文章!