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

Wie kann ich Strings in JavaScript effizient auffüllen?

DDD
Freigeben: 2024-11-23 12:31:17
Original
867 Leute haben es durchsucht

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)
Nach dem Login kopieren

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

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

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;
    });
};
Nach dem Login kopieren

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 '-/|\-/|*'
Nach dem Login kopieren

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;
  }
};
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage