在连接字符串之间动态添加空格

时间:2014-08-05 16:44:12

标签: javascript concatenation

我想知道是否可以在两个连接的字符串或整数之间动态添加空格。例如,这里简单地连接一个字符串和一个整数:

var name = "Bruce"
var age = 14
name + " " + age
=> 'Bruce 14'

我希望名字和年龄之间的空间是动态的。 e.g:

var name = "Bruce"
var age = 14
var numberOfSpaces = something
name + 4 spaces + age
=> 'Bruce    14'

其中一个用例是在dc.js中绘制条形图,我可以将名称放在底部,将值放在条形图的顶部。但这是无关紧要的。我很好奇是否有方法。

4 个答案:

答案 0 :(得分:1)

有一个proposed repeat() method,但它几乎没有实现。

与此同时,你可以写自己的:

function repeatstr(ch, n) {
  var result = "";

  while (n-- > 0)
    result += ch;

  return result;
}

var name = "Bruce"
var age = 14
var numberOfSpaces = 4

var fullName = name + repeatstr(" ", numberOfSpaces) + age;

答案 1 :(得分:1)

您可以创建自己的功能:

function spaces(x) {
    var res = '';
    while(x--) res += ' ';
    return res;
}

var name = "Bruce";
var age = 14;
name + spaces(4) + age;

> "Bruce    14"

我认为这是最漂亮和最简单的方式。

答案 2 :(得分:1)

var s = function(n) {return new Array(n + 1).join(",").replace(/,/g," ")};
var name = "Bruce";
var age = 14;
var numberOfSpaces = 4;
name + s(numberOfSpaces) + age;

答案 3 :(得分:0)

更新! String.prototype.repeat()得到所有主流浏览器的支持已经有一段时间了。

您可以这样做:

var name = "Bruce";
var age = 14;
name + ' '.repeat(4) + age;