アンダースコアをスペースに置き換えるにはどうすればいいですか? [重複] 質問する

アンダースコアをスペースに置き換えるにはどうすればいいですか? [重複] 質問する

内部にオブジェクトを含む配列があり、いくつかのオブジェクトの文字列にアンダースコアが含まれています。

例:

{"name": "My_name"}

しかし、私は複数の場所で名前関数を呼び出しています。そのような場所の 1 つは、アンダースコアが必要な画像タグ内です。JavaScript を使用して、名前が含まれる特定の div を選択し、アンダースコアをスペースに置き換えたいと考えています。

例:

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

では、の代わりにdiv.nameと言いたいです。My nameMy_name

ベストアンサー1

String.prototype.replaceグローバル正規表現を使用して、文字列内のすべてのアンダースコアをスペースに置き換えることができます。

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

コンテンツを挿入する前にこれを行ってください。または、後で置換を実行する必要があるときは、解決策は次のとおりです:

$('.name').text((i, oldText) =>
    oldText.replace(/_/g, ' '));

これは次の単純な DOM API ループと同等です。

for (const element of document.getElementsByClassName('name')) {
    element.textContent = element.textContent.replace(/_/g, ' ');
}

おすすめ記事