替换功能只能工作一次(javascript)

时间:2013-03-27 11:12:57

标签: javascript jquery html dom

每次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这个词的第一个实例。

我做错了什么?我需要添加什么来使它替换所有单词的实例?

1 个答案:

答案 0 :(得分:32)

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

<强> Live Demo

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

String.prototype.replace() replace()方法返回一个新字符串,其中一个或所有匹配的模式由替换替换。模式可以是字符串或RegExp,替换可以是字符串或要为每个匹配调用的函数。

  

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

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

substr(模式)

  

要由newSubStr替换的字符串。它被视为一个   逐字字符串并不被解释为正则表达式。只要   第一次出现将被替换。

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

regexp(模式)

  

RegExp对象或文字。比赛被替换为   参数#2的返回值。