簡介
向字串添加填充可能是一項必要的任務由於各種原因,例如對齊或格式設定。本文探討如何在 JavaScript 中將字串填入指定長度。
ES8 解決方案
ECMAScript 2017 (ES8) 引入了 String.padStart,讓字串填充變得毫不費力。其語法為:
string.padStart(targetLength, [padString])
範例:
"Jonas".padStart(10); // Default pad string is a space "42".padStart(6, "0"); // Pad with "0" "*".padStart(8, "-/|\"); // produces '-/|\-/|*'
用於ES8 之前的瀏覽器的Polyfill
用於ES8 之前的瀏覽器的Polyfill
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; };
對於瀏覽器不支援ES8,可以使用polyfill使用:
經典解
var n = 123 String("00000" + n).slice(-5); // returns 00123 ("00000" + n).slice(-5); // returns 00123 (" " + n).slice(-5); // returns " 123" (with two spaces)
在 ES8之前,常見的方法涉及前置填充:
字串物件擴充
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; }); };使用範例:這將傳回格式為「15:30」的時間。
以上是如何在 JavaScript 中將字串填入特定長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!