替换function只能工作一次(javascript)
每次str1在特定div中显示时,我需要用另一个字符串(str2)替换字符串(str1)。
这是我到目前为止所得到的
$(window).load(function(){ var str=document.getElementById("foo").innerHTML; var n=str.replace("Google","Yahoo"); document.getElementById("foo").innerHTML=n; });
和HTML
Google is the best website ever
Google is not the best website ever
不幸的是,当我运行它时,它只取代了谷歌这个词的第一个实例。
我究竟做错了什么? 我需要添加什么来使它替换所有单词的实例?
使用regex /string/g
替换所有出现的事件,您正在使用substring,它将根据replace()函数的文档仅替换第一次出现。
现场演示
var n=str.replace(/Google/g,"Yahoo");
String.prototype.replace() replace()方法返回一个新字符串,其中一个或所有匹配的模式由替换替换。 模式可以是字符串或RegExp,替换可以是字符串或要为每个匹配调用的函数。
str.replace(regexp | substr,newSubStr | function)
您正在使用substr模式,它将仅替换首次出现。
substr(模式)
要由newSubStr替换的String。 它被视为逐字字符串,不会被解释为正则表达式。 只会替换第一次出现。
使用此正则表达式模式替换所有出现。
正则表达式(模式)
一个RegExp对象或文字。 匹配由参数#2的返回值替换。