PadStart: примеры (JAVASCRIPT)

Метод padStart для форматирования строк в JavaScript
Раздел: Строки, Форматирование
padStart(targetLength, padString?): string

Описание метода padStart

Метод padStart() в JavaScript предназначен для дополнения текущей строки другой строкой до заданной длины. Дополнение выполняется в начале (слева) исходной строки. Этот метод полезен для форматирования вывода, например, для выравнивания чисел или текста.

Использование функции актуально при необходимости обеспечить единообразное отображение данных фиксированной длины, таких как номера документов, временные метки, табличные представления.

Аргументы

  • targetLength (целое число): Целевая длина итоговой строки после дополнения. Если значение меньше текущей длины строки, строка возвращается без изменений.
  • padString (строка, необязательный): Строка для дополнения. Если эта строка слишком длинная, она будет усечена. Значение по умолчанию — пробел (" ").

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

Возвращается новая строка заданной длины (targetLength), состоящая из исходной строки, дополненной в начале строкой padString.

Примеры использования

Базовый пример с заполнением нулями:

console.log('5'.padStart(3, '0'));
"005"

Использование строки из нескольких символов:

console.log('abc'.padStart(7, 'xy'));
"xyxabc"

Случай, когда целевая длина меньше длины исходной строки:

console.log('abcdef'.padStart(3, '0'));
"abcdef"

Вызов без указания padString:

console.log('123'.padStart(6));
"   123"

Похожие методы в JavaScript

padEnd(): Дополняет строку в конце (справа). Применяется для выравнивания по правому краю.

console.log('5'.padEnd(3, '0'));
"500"

String.prototype.repeat(): Позволяет повторить строку указанное количество раз. Может использоваться для создания базовых шаблонов заполнения.

console.log('0'.repeat(3) + '5');
"0005"

toLocaleString() с параметрами: Для чисел может обеспечить дополнение нулями с учетом локали.

console.log((5).toLocaleString('en-US', { minimumIntegerDigits: 3 }));
"005"

Выбор метода зависит от задачи: padStart оптимален для дополнения строк слева, padEnd — справа, repeat — для генерации повторяющихся паттернов.

Аналоги в других языках

PHP: str_pad(): Позволяет дополнять строку с любой стороны.

echo str_pad('5', 3, '0', STR_PAD_LEFT);
005

Python: str.rjust(), str.zfill(): rjust() аналогичен padStart, zfill() дополняет нулями с учетом знака.

print('5'.rjust(3, '0'))
print('-5'.zfill(4))
005
-005

MySQL: LPAD(): Дополняет строку слева указанной строкой до заданной длины.

SELECT LPAD('5', 3, '0');
005

C#: String.PadLeft(): Функциональность идентична JavaScript.

Console.WriteLine("5".PadLeft(3, '0'));
005

Основное отличие заключается в именовании и наличии дополнительных параметров, например, учет локали или направления дополнения.

Распространенные ошибки

Передача отрицательного числа или NaN в targetLength:

console.log('5'.padStart(-2, '0'));
console.log('5'.padStart(NaN, '0'));
"5"
"5"

Использование нестроковых значений в качестве padString:

console.log('5'.padStart(3, 0));
"  5" (число 0 преобразуется в строку "0")

Ожидание изменения исходной строки:

let str = 'test';
str.padStart(6, 'x');
console.log(str);
"test" (исходная строка не изменяется)

Использование пустой строки в качестве padString:

console.log('5'.padStart(3, ''));
"  5" (фактически, дополнение пробелами)

Изменения в методе

Метод padStart() был стандартизирован в спецификации ECMAScript 2017 (ES8). С момента включения в стандарт существенных изменений в его работу не вносилось. Поведение функции остается стабильным во всех современных браузерах и средах выполнения JavaScript, поддерживающих ES2017 и выше.

Расширенные примеры применения

Форматирование отображения времени:

Пример javascript
const hours = '3', minutes = '7';
console.log(`${hours.padStart(2, '0')}:${minutes.padStart(2, '0')}`);
"03:07"

Создание табличного представления с выравниванием:

Пример javascript
const data = [
  ['Apple', 10],
  ['Orange', 150],
  ['Banana', 2000]
];
data.forEach(([name, count]) => {
  console.log(`${name.padStart(10)}: ${count.toString().padStart(5)}`);
});
     Apple:    10
    Orange:   150
    Banana:  2000

Генерация серийных номеров с префиксом:

Пример javascript
function generateId(num, totalLength = 6) {
  return `ID-${num.toString().padStart(totalLength - 3, '0')}`;
}
console.log(generateId(42));
console.log(generateId(1234, 10));
"ID-000042"
"ID-000001234"

Использование с нестроковыми значениями (автоматическое преобразование):

Пример javascript
console.log((12.34).toString().padStart(10, ' '));
console.log((true).toString().padStart(7, '-'));
"     12.34"
"---true"

Создание визуальных разделителей:

Пример javascript
const title = "Глава 1";
console.log(title.padStart(30, '='));
"=======================Глава 1"

JS padStart function comments

En
PadStart Pads the current string from the start with a given string to reach a given length