Дополнение строки до заданной длины с обоих краев в JavaScript

Метод padBoth()

В JavaScript нет отдельного метода для данной задачи. Однако его можно добавить самостоятельно.

Исходный код

if (!String.prototype.padBoth) {
	String.prototype.padBoth = function (padLength, padString) {
		var string = '' + this;
		padLength = parseInt(padLength);
		padString = '' + padString;
		if (padLength && padString.length) {
			padLength -= string.length;
			if (padLength > 0) {
				var padLengthLeft = Math.floor(padLength / 2);
				var padLengthRight = padLength - padLengthLeft;
				string = padString.repeat(Math.ceil(padLengthLeft / padString.length)).substr(0, padLengthLeft) + string;
				string += padString.repeat(Math.ceil(padLengthRight / padString.length)).substr(0, padLengthRight);
			}
		}
		return string;
	};
}

Синтаксис

string.padBoth ( padLength , padString )

Аргументы

  1. padLength — нужная длина строки;
  2. padString — строка дополнения.

Возвращаемое значение

Возвращает новую строку, содержащую строку string, на которой был вызван метод padBoth(), дополненную до длины padLength с обоих краев.

Особенности

  • Безопасен для многобайтных строк.
  • Важно помнить, что при вычислении левого и правого дополнений строки в приоритете правый край. Т.е. если нужно увеличить строку на 3 символа, то к правому краю добавиться 2 символа, а к левому — 1.