padStart()
方法用另一个字符串填充当前字符串(重复,如果需要的话),以便产生的字符串达到给定的长度。填充从当前字符串的开始(左侧)应用的。
语法
str.padStart(targetLength [, padString])
参数
-
targetLength
- 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
-
padString
可选 - 填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的缺省值为 " "(U+0020)。
返回值
在原字符串开头填充指定的填充字符串直到目标长度所形成的新字符串。
示例
'abc'.padStart(10); // " abc"
'abc'.padStart(10, "foo"); // "foofoofabc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(8, "0"); // "00000abc"
'abc'.padStart(1); // "abc"
Polyfill
如果原生环境不支持该方法,在其他代码之前先运行下面的代码,将创建 String.prototype.padStart()
方法。
// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js
if (!String.prototype.padStart) {
String.prototype.padStart = function padStart(targetLength,padString) {
targetLength = targetLength>>0; //floor if number or convert non-number to 0;
padString = String((typeof padString !== 'undefined' ? padString : ' '));
if (this.length > targetLength) {
return String(this);
}
else {
targetLength = targetLength-this.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
}
return padString.slice(0,targetLength) + String(this);
}
};
}
规范
规范 | 状态 | 备注 |
---|---|---|
ECMAScript Latest Draft (ECMA-262) String.prototype.padStart |
Draft | 在 ECMAScript 2017 中首次被定义。 |
ECMAScript 2017 (ECMA-262) String.prototype.padStart |
Standard |
浏览器兼容性
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
padStart |
Chrome Full support 57 | Edge Full support 15 | Firefox Full support 48 | IE No support No | Opera Full support 44 | Safari Full support 10 | WebView Android Full support 57 | Chrome Android Full support 57 | Firefox Android Full support 48 | Opera Android Full support 43 | Safari iOS Full support 10 | Samsung Internet Android Full support 7.0 | nodejs Full support 8.0.0
|
Legend
- Full support
- Full support
- No support
- No support
- User must explicitly enable this feature.
- User must explicitly enable this feature.