JavaScript で文字列を効率的にパディングするにはどうすればよいですか?

DDD
リリース: 2024-11-23 12:31:17
オリジナル
821 人が閲覧しました

How Can I Efficiently Pad Strings in JavaScript?

文字列パディング用の JavaScript 関数

概要

文字列のパディングでは、文字列の先頭または末尾に文字を追加して、希望の長さ。これは、表内の配置や数値の書式設定など、さまざまなシナリオで役立ちます。この記事では、文字列のパディングを容易にする 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート