Heim >Web-Frontend >js-Tutorial >Wie kann ich Strings in JavaScript effizient auffüllen?

Wie kann ich Strings in JavaScript effizient auffüllen?

DDD
DDDOriginal
2024-11-23 12:31:17900Durchsuche

How Can I Efficiently Pad Strings in JavaScript?

JavaScript-Funktion zum Auffüllen von Zeichenfolgen

Einführung

Das Auffüllen einer Zeichenfolge umfasst das Hinzufügen von Zeichen am Anfang oder Ende, um ein zu erreichen gewünschte Länge. Dies ist in verschiedenen Szenarien nützlich, beispielsweise bei der Ausrichtung in Tabellen oder beim Formatieren von Zahlen. In diesem Artikel wird eine JavaScript-Funktion untersucht, die das Auffüllen von Zeichenfolgen erleichtert.

Lösungen vor ES8

Vor ECMAScript 8 (ES8) verwendeten Entwickler verschiedene Methoden zum Auffüllen von Zeichenfolgen. Ein einfacher Ansatz besteht darin, die Zeichenfolge mit einem vordefinierten Füllwert zu verketten und das Ergebnis in Scheiben zu schneiden, um die gewünschte Länge zu erhalten:

var n = 123;

String("00000" + n).slice(-5); // returns 00123
("00000" + n).slice(-5); // returns 00123
("     " + n).slice(-5); // returns "  123" (with two spaces)

Eine andere Lösung erweitert das Zeichenfolgenobjekt mit einer paddingLeft-Methode:

String.prototype.paddingLeft = function (paddingValue) {
   return String(paddingValue + this).slice(-paddingValue.length);
};

Diese Methode kann wie folgt verwendet werden:

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 und Darüber hinaus

ES8 hat die String.padStart-Methode eingeführt, die das Auffüllen von Zeichenfolgen vereinfacht:

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

Wenn String.padStart nicht verfügbar ist, kann es mit einer Polyfüllung hinzugefügt werden. Die folgende Polyfüllung erweitert das String-Objekt:

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;
  }
};

Das obige ist der detaillierte Inhalt vonWie kann ich Strings in JavaScript effizient auffüllen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn