为了账号安全,请及时绑定邮箱和手机立即绑定

是否有JavaScript函数可以填充字符串以获得确定的长度?

是否有JavaScript函数可以填充字符串以获得确定的长度?

慕尼黑5688855 2019-07-04 15:09:16
是否有JavaScript函数可以填充字符串以获得确定的长度?我需要一个JavaScript函数,它可以取一个值并将其填充到给定的长度(我需要空格,但任何事情都可以)。我发现了这个:代码:String.prototype.pad = function(l, s, t){     return s || (s = " "), (l -= this.length) > 0 ? (s = new Array(Math.ceil(l / s.length)         + 1).join(s)).substr(0, t = !t ? l : t == 1 ? 0 : Math.ceil(l / 2))         + this + s.substr(0, l - t) : this;};例子:<script type="text/javascript">//<![CDATA[var s = "Jonas";document.write(     '<h2>S = '.bold(), s, "</h2>",     'S.pad(20, "[]", 0) = '.bold(), s.pad(20, "[]", 0), "<br />",     'S.pad(20, "[====]", 1) = '.bold(), s.pad(20, "[====]", 1), "<br />",     'S.pad(20, "~", 2) = '.bold(), s.pad(20, "~", 2));//]]></script>但我不知道它到底在做什么,它似乎对我没有用。
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

我找到了这个解决方案这里这对我来说要简单得多:

var n = 123String("00000" + n).slice(-5); // returns 00123("00000" + n).slice(-5);
 // returns 00123("     " + n).slice(-5); // returns "  123" (with two spaces)

在这里,我对String对象做了一个扩展:

String.prototype.paddingLeft = function (paddingValue) {
   return String(paddingValue + this).slice(-paddingValue.length);};

一个使用它的例子:

function getFormattedTime(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();

  hours = hours.toString().paddingLeft("00");
  minutes = minutes.toString().paddingLeft("00");

  return "{0}:{1}".format(hours, minutes);};String.prototype.format = function () {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function (match, number) {
        return typeof args[number] != 'undefined' ? args[number] : match;
    });};

这将返回格式为“15:30”的时间。


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 681 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信