32 lines
877 B
JavaScript
32 lines
877 B
JavaScript
var toValString = require('./toString')
|
|
var repeat = require('../string/repeat')
|
|
|
|
var isUndefined = require('../base/isUndefined')
|
|
|
|
/**
|
|
* 用指定字符从前面开始补全字符串
|
|
*
|
|
* @param {String} str 字符串
|
|
* @param {Number} targetLength 结果长度
|
|
* @param {Number} padString 补全字符
|
|
* @return {String}
|
|
*/
|
|
function padStart (str, targetLength, padString) {
|
|
var rest = toValString(str)
|
|
targetLength = targetLength >> 0
|
|
padString = isUndefined(padString) ? ' ' : '' + padString
|
|
if (rest.padStart) {
|
|
return rest.padStart(targetLength, padString)
|
|
}
|
|
if (targetLength > rest.length) {
|
|
targetLength -= rest.length
|
|
if (targetLength > padString.length) {
|
|
padString += repeat(padString, targetLength / padString.length)
|
|
}
|
|
return padString.slice(0, targetLength) + rest
|
|
}
|
|
return rest
|
|
}
|
|
|
|
module.exports = padStart
|