2012-08-28 48 views
0

我有2个问题:Javascript:如何用空格替换字符串中的所有字符?

  1. 想,如果我有一个字符串"Have a nice day" 这是输出我想:你怎么在javascript 动态创建一个字符串" "(15位)

  2. 而且对于例如:在ruby

    "A"*10 "AAAAAAAAAA"

如果后者是可能的,我可以做第一个(像这样的东西。 )" "*(input.length)

+0

为什么不使用正则表达式的JavaScript替换功能? – TWickz

回答

4

答为Q1:

var str = "Have a nice day"; 
str = str.replace(/./g, ' '); 

答为Q2:

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

"A".repeat(10); 
+0

哪一个快? (优化代码?) –

+0

@KrishnaprasadVarma相比于什么? – xdazz

+0

new Array(inputKwd.length).join(“”); VS inputKwd.replace(/./g,''); –

4

它可以通过以下方式实现:

// returns a string with 10 "A" (one less than the array length, which is 11) 
new Array(11).join("A"); 
+0

+1和1)当然可以用'new Array(“Have a nice day”.length).join(“”);' –

+2

off-by-one :)实现:应该是'Array(11)'' –

+0

正确,我会修复它:-) – Strille

1

1) 'Have a nice day'.replace(/./g,' ');

0

1)

"Have a nice day".replace(/(.)/g, ' '); 

2.)

(new Array(11)).join('A'); 
+1

在正则表达式中的分组有没有必要? – sQVe

0
  1. "Have a nice day".replace(/./g, ' ');

  2. var str = "Have a nice day"; (new Array(str.length+1)).join(' ');

+0

为什么分组? '/./ g'应该可以正常工作。 –

0

你可以用一个简单的方法做这一切:

var myString = "Have a nice day"; 

var emptyString = cleaner(' ', emptyString.lenght); 
var aString = cleaner('A', emptyString.lenght); 

var cleaner = function(charColor,length){ 
    return new Array(length)).join(charColor); 
} 
相关问题