14

str1が特定のdivに表示されるたびに、文字列(str1)を別の文字列(str2)に置き換える必要があります。

これは私がこれまでに得たものです

<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>

とhtml

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

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

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

4

1 に答える 1

43

正規表現を使用/string/gしてすべてのオカレンスを置き換えます。replace ()関数のドキュメントに従って、最初のオカレンスのみを置き換えるサブストリングを使用しています。

ライブデモ

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

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

str.replace(regexp | substr、newSubStr | function)

最初の出現のみを置き換えるsubstrパターンを使用しています。

substr(パターン)

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

この正規表現パターンを使用して、すべてのオカレンスを置き換えます。

正規表現(パターン)

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

于 2013-03-27T11:13:45.123 に答える