繁体   English   中英

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

[英]Replace function only works once (javascript)

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

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

使用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的返回值替换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM