每次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这个词的第一个实例。
我做错了什么?我需要添加什么来使它替换所有单词的实例?
答案 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的返回值。