最简单的内联方法,用于填充字符串

Dan*_*eis 43 javascript string

可能重复:
是否有一个JavaScript函数可以填充字符串以达到确定的长度?

在javascript中填充字符串的最简单方法是什么?

我正在寻找一个内联表达式,相当于mystr.lpad("0", 4):for mystr='45'返回0045.

Dan*_*eis 144

找到一个简单的一线解决方案:

("0000" + n).slice(-4)
Run Code Online (Sandbox Code Playgroud)

如果字符串和填充在变量中,您将拥有:

mystr = '45'
pad = '0000'
(pad + mystr).slice(-pad.length)
Run Code Online (Sandbox Code Playgroud)

这里找到答案,感谢@ dani-p.致@profitehlolz的积分.

  • 很好的一个班轮,但当字符串长于填充时断裂. (8认同)
  • 如果mystr可能比pad字符串长,并且你不希望mystr被截断,请使用此方法.(pad + mystr).slice(-Math.max(pad.length,mystr.length)) (6认同)
  • '01'.padStart(4).replace('',0) (5认同)

Kev*_*sox 21

function pad(value, length) {
    return (value.toString().length < length) ? pad("0"+value, length):value;
}
Run Code Online (Sandbox Code Playgroud)

  • 优雅的解决方 一个建议:如果在对函数的第一次调用中将数字传递给value,则此函数可以返回数字而不是字符串,并且value.toString().length <length.一个简单的修复方法是:代码返回(value.toString().length <length?pad("0"+ value,length):value.toString() (2认同)

xda*_*azz 9

如下所示:

String.prototype.lpad = function(padString, length) {
    var str = this;
    while (str.length < length)
        str = padString + str;
    return str;
}
console.log('45'.lpad('0', 4)); // "0045"
Run Code Online (Sandbox Code Playgroud)