概要
文字列のパディングでは、文字列の先頭または末尾に文字を追加して、希望の長さ。これは、表内の配置や数値の書式設定など、さまざまなシナリオで役立ちます。この記事では、文字列のパディングを容易にする JavaScript 関数について説明します。
ES8 以前のソリューション
ECMAScript 8 (ES8) より前、開発者は文字列のパディングにさまざまな方法を採用していました。簡単なアプローチの 1 つは、文字列を定義済みのパディング値と連結し、その結果をスライスして必要な長さを取得することです:
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 および
ES8 では、文字列のパディングを簡素化する String.padStart メソッドが導入されました。
"Jonas".padStart(10); // Default pad string is a space "42".padStart(6, "0"); // Pad with "0" "*".padStart(8, "-/|\"); // produces '-/|\-/|*'
String.padStart が利用できない場合は、ポリフィルを使用して追加できます。次のポリフィルは文字列オブジェクトを拡張します:
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 中国語 Web サイトの他の関連記事を参照してください。