[Javascript] HTMLのタグ以外の文字列部分のみを置換する処理(マルチ階層対応)
 
function replaceSpacesInTextNodes(element, searchValue, replaceValue) {
  // 指定された要素の全ての子要素を走査する
  element.childNodes.forEach(node => {
    if (node.nodeType === Node.TEXT_NODE) {
      // テキストノードの場合、指定された置換を行う
      node.textContent = node.textContent.replace(new RegExp(searchValue, 'g'), replaceValue);
    } else {
      // 子要素がある場合、再帰的に処理する
      replaceSpacesInTextNodes(node, searchValue, replaceValue);
    }
  });
}
// 使用例
document.addEventListener("DOMContentLoaded", () => {
  // HTML全体を対象にする場合はdocument.bodyを渡す
  replaceSpacesInTextNodes(document.body, ' ', '置換後の文字列');
});