2013-03-27 20 views
12

str1が特定のdivに表示されるたびに、文字列(str1)を別の文字列(str2)に置き換える必要があります。置換機能は一度しか機能しません(javascript)

これは私がこれまで

<script type="text/javascript"> 
$(window).load(function(){ 

var str=document.getElementById("foo").innerHTML; 
var n=str.replace("Google","Yahoo"); 
document.getElementById("foo").innerHTML=n; 

}); 

</script> 

<div id="foo"> 
Google is the best website ever <br /> 
Google is not the best website ever</div> 

は、残念ながら、私はそれを実行すると、それだけで単語グーグルの最初のインスタンスを置き換えるHTMLを得たものです。

私は間違っていますか?単語のすべてのインスタンスを置き換えるために追加する必要があるのは何ですか?

+2

の可能複製[JavaScriptで文字列の出現をすべて置き換える?](http://stackoverflow.com/questions/1144783/replacing-all-occurrences-of-a-string-in-javascript) – Dennis

答えて

23

regex /string/gを使用してすべての文字列を置換すると、replace()というドキュメントの最初の出現箇所のみを置換する部分文字列が使用されます。

Live Demo

var n=str.replace(/Google/g,"Yahoo"); 

String.prototype.replace() replace()メソッドは、置換によって置き換えられたパターンの一部またはすべてのマッチした新しい文字列を返します。 patternは文字列またはRegExpであり、置換はそれぞれの一致に対して呼び出される文字列または関数です。

str.replace(正規表現| SUBSTR、newSubStr |機能)

あなただけの最初のoccuranceを置き換えますSUBSTRパターンを使用しています。

SUBSTR(パターン)

newSubStrによって置換される文字列。それは 逐語的な文字列として扱われ、正規表現として解釈されません。 のみ最初のオカレンスが置換されます。

すべての出現を置き換えるには、このregexpパターンを使用してください。

正規表現(パターン)

A RegExpオブジェクトまたはリテラル。この一致は、パラメータ#2の戻り値 に置き換えられます。

+0

感謝あなたは大変です。出来た! –

+0

ようこそ。 – Adil

+0

良い答えです。文字列引数が与えられたときに 'replace()'関数がすべてのオカレンスを置き換えない理由を説明できますか? – chharvey

関連する問題