14

每次 str1 在特定 div 中显示时,我都需要用另一个字符串 (str2) 替换一个字符串 (str1)。

这是我到目前为止得到的

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

不幸的是,当我运行它时,它只替换了 Google 一词的第一个实例。

我究竟做错了什么?我需要添加什么以使其替换单词的所有实例?

4

1 回答 1

43

使用正则表达式/string/g替换所有匹配项,您使用的子字符串将根据replace()函数的文档仅替换第一次出现。

现场演示

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

String.prototype.replace() replace() 方法返回一个新字符串,其中模式的部分或全部匹配被替换。模式可以是字符串或正则表达式,替换可以是字符串或每次匹配调用的函数。

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

您正在使用 substr 模式,它将仅替换第一次出现。

substr(模式)

将被 newSubStr 替换的字符串。它被视为逐字字符串,不被解释为正则表达式。只有第一个匹配项将被替换。

使用此正则表达式模式替换所有出现的情况。

正则表达式(模式)

一个 RegExp 对象或文字。匹配被参数#2 的返回值替换。

于 2013-03-27T11:13:45.123 回答