String.prototype.padStart()

Baseline 已广泛支持

该特性已非常成熟,可在多种设备和浏览器版本上使用。自 2017 年 4 月以来,它已在各大浏览器上可用。

padStart() 方法用于 String 值的开头填充,以达到指定的长度。如果字符串的现有长度加上填充的字符串长度,超过了指定的长度,那么填充的字符串可能会被截断。填充会从字符串的开头进行。

试一试

const str = "5";

console.log(str.padStart(2, "0"));
// Expected output: "05"

const fullNumber = "2034399002125581";
const last4Digits = fullNumber.slice(-4);
const maskedNumber = last4Digits.padStart(fullNumber.length, "*");

console.log(maskedNumber);
// Expected output: "************5581"

语法

js
padStart(targetLength)
padStart(targetLength, padString)

参数

targetLength

目标字符串的长度,即经过填充后的字符串的长度。如果此值小于或等于当前字符串 str 的长度,则当前字符串 str 会被原样返回。

padString 可选

用于填充当前字符串 str 的字符串。如果 padString 太长而无法在 targetLength 内保持,它将被截断。默认值为一个空格字符 (U+0020)。

返回值

一个长度为指定 targetLengthString,其中 padString 已从开头进行了填充。

示例

使用 String.prototype.padStart()

js
"abc".padStart(10); // "       abc"
"abc".padStart(10, "foo"); // "foofoofabc"
"abc".padStart(6, "123465"); // "123abc"
"abc".padStart(8, "0"); // "00000abc"
"abc".padStart(1); // "abc"

固定宽度字符串数字转换

js
// JavaScript version of: (unsigned)
// printf "%0*d" width num
function leftFillNum(num, targetLength) {
  return num.toString().padStart(targetLength, "0");
}

const num = 123;
console.log(leftFillNum(num, 5)); // "00123"

规范

规范
ECMAScript® 2026 语言规范
# sec-string.prototype.padstart

浏览器兼容性

另见