How to replace underscores with spaces?

I have an array with objects inside of it, a few of the objects contain an underscore in the string.

Example:

{"name": "My_name"}

But I'm calling the name function in multiple places, one such place is in an image tag where the underscore is necessary, using JavaScript I want to select a certain div with the name in it and replace the underscore with space.

Example:

<div>
 <div class="name">
  My_name
 </div>
 <img src="My_name.jpg"/>
</div>

In the div.name I want it to say My name instead of My_name.


Solution 1:

You can replace all underscores in a string with a space like so:

str.replace(/_/g, ' ');

So just do that before the content is put in. If you need to perform the replacement afterwards, loop using each:

$('.name').each(function () {
    this.textContent = this.textContent.replace(/_/g, ' ');
});

Solution 2:

ES2021 introduced the nifty replaceAll()-function which means it can be written as:

str.replaceAll('_', ' ')

If you want to do multiple elements just loop over them and use forEach():

const elements = document.querySelectorAll('.name')   
elements.forEach(e => e.innerText = e.innerText.replaceAll('_', ' '))