Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript .replace() not working

carList = cars.innerHTML;
alert(carList);
carList = carList.replace("<center>","").replace("</center>","").replace("<b>","").replace("</b>","");
alert(carList);

enter image description here

Why in the world is this happening? I've tried splitting this out into individual string.replace()'s and that gives the same result.

like image 628
Hoser Avatar asked Oct 24 '13 20:10

Hoser


2 Answers

Using .replace() with a string will only fix the first occurrence which is what you are seeing. If you do it with a regular expression instead you can specify that it should be global (by specifying it with a g afterwards) and thus take all occurrences.

carList = "<center>blabla</center> <b>some bold stuff</b> <b>some other bold stuff</b>";
alert(carList);
carList = carList.replace(/<center>/g,"").replace(/<\/center>/g,"").replace(/<b>/g,"").replace(/<\/b>/g,"");
alert(carList);

See this fiddle for a working sample.

like image 117
Karl-Johan Sjögren Avatar answered Sep 17 '22 18:09

Karl-Johan Sjögren


You can use a regular expression to match all of these at the same time:

carList = carList.replace(/<\/?(b|center)>/g,"");

The g flag at the end of the match string tells Javascript to replace all occurrences, not just the first one.

like image 32
r3mainer Avatar answered Sep 20 '22 18:09

r3mainer