Дополнение строки до заданной длины с обоих краев в 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 )
Аргументы
- padLength — нужная длина строки;
- padString — строка дополнения.
Возвращаемое значение
Возвращает новую строку, содержащую строку string, на которой был вызван метод padBoth(), дополненную до длины padLength с обоих краев.
Особенности
- Безопасен для многобайтных строк.
- Важно помнить, что при вычислении левого и правого дополнений строки в приоритете правый край. Т.е. если нужно увеличить строку на 3 символа, то к правому краю добавиться 2 символа, а к левому — 1.