2011-10-04 82 views
3

是否有任何简单的方法来乘以jQuery/JS中的字母数字字符串?jQuery - 乘以字母数字字符串

e.g

var str = "ABC"; 
console.log(str * 5); // this will nerutn `Nan` 
// where what i want is `ABCABCABCABCABC` 

任何建议赞赏。

+0

我还想说_definite_重复。在较旧的线程中有一些很好的答案。 – nnnnnn

+1

@Dade,使用帖子中的关闭链接来链接重复。 – epascarello

+0

@epascarello它没有显示关闭链接。 – FreeSnow

回答

20

我在这里看到的具体问题:

Repeat String - Javascript

只需添加到您的代码:

String.prototype.repeat = function(num) 
{ 
    return new Array(num + 1).join(this); 
} 

var str = "ABC"; 
console.log(str.repeat(5)); // this will return `ABCABCABCABCABC` 
+3

这看起来更清洁,并创造性地使用'Array.join'。 :D +1! –

+0

线程应该关闭。 – epascarello

3

尝试用原型功能扩展String对象。

String.prototype.repeat = function (n) { 
    var str = ''; 
    for(var i = 0; i < n; i++) { str += this; } 
    return str; 
}; 

,这样就可以做这样的:

console.log(str.repeat(5)); 
0
String.prototype.duplicate = function(numTimes){ 
    var str = ""; 
    for(var i=0;i<numTimes;i++){ 
     str += this; 
    } 
    return str; 
}; 

console.log("abc".duplicate(2)); 

jsbin example

0

这将返回NaN,因为str是不是一个数字。

你应该这样做:

var str = "ABC"; 
console.log(multiply(str,num)); 

使用功能

function multiply(str,num){ 
     for (var int = 0; int < length; int++) { 
     str += str; 
     } 
     return str 
} 
0
String.prototype.multi = function(num) { 
var n=0,ret = ""; 
while(n++<num) { 
    ret += this; 
} 
return ret; 
}; 

然后使用。多(5)在任何字符串你想:)我爱:

var s = "ABC"; 
alert(s.multi(5));