2012-06-14 10 views
5

文字列の置き換えを行う最良の方法は不思議です。Javascriptの正規表現を繰り返して元の文字列を変更します

value.replace("bob", "fred"); 

たとえば、動作しますが、「bob」の各インスタンスを配列に格納したランダムな文字列に置き換える必要があります。正規表現マッチを行うだけで、一致するテキストが返されますが、元の文字列に置き換えることはできません。これを行う簡単な方法はありますか?私は、文字列を期待する例えば

"Bob went to the market. Bob went to the fair. Bob went home" 

多分あなたは関数呼び出しの値に置き換えることができます

"Fred went to the market. John went to the fair. Alex went home" 

答えて

4

として飛び出すするには:

var names = ["Fred", "John", "Alex"]; 
var s = "Bob went to the market. Bob went to the fair. Bob went home"; 
s = s.replace(/Bob/g, function(m) { 
    return names[Math.floor(Math.random() * names.length)]; 
}); 

この例えば:

"John went to the market. Fred went to the fair. John went home" 
+0

Whoa。パーフェクトです。ありがとう! – Grazfather

関連する問題