I need to replace a string (str1) with another string (str2) every time str1 shows in a specific div.
This is what I got so far
<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>
and the html
<div id="foo">
Google is the best website ever <br />
Google is not the best website ever</div>
Unfortunately, when I run it, it only replaces the first instance of the word Google.
What am I doing wrong? What do I need to add to make it replace ALL the instances of the word?
Use regex /string/g
to replace all occurrences, you are using substring which will replace only first occurances as per documentation of replace() function.
var n=str.replace(/Google/g,"Yahoo");
String.prototype.replace() The replace() method returns a new string with some or all matches of a pattern replaced by a replacement. The pattern can be a string or a RegExp, and the replacement can be a string or a function to be called for each match.
str.replace(regexp|substr, newSubStr|function)
You are using substr pattern which will replace first occurance only.
substr (pattern)
A String that is to be replaced by newSubStr. It is treated as a verbatim string and is not interpreted as a regular expression. Only the first occurrence will be replaced.
Use this regexp patter to replace all occurances.
regexp (pattern)
A RegExp object or literal. The match is replaced by the return value of parameter #2.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.