У меня есть форма, которая представляет японский контент следующим образом.
«<div><b>
こ れ を 目的 に 行 く 価 値 あ り!</b>
写真 県 の ご 当地 グ メ 7 選 < 写真 > 0 > →<p>
使 え そ う な も の が あ れ ば 使 う<p></div>
«
С помощью JavaScript я удаляю эти <b>
а также <p>
HTML-теги.
function extractContent(s) {
var span = document.createElement('span');
span.innerHTML = s;
return span.textContent || span.innerText;
};
Но как мне поставить эти символы «< 写真 0 >» как есть?
Ошибка загрузки страницы «Uncaught SyntaxError: неверный или неожиданный токен«
Даже я пытаюсь с «encodeURIComponent» и «decodeURIComponent» он не работал.
Ваш код работает, как и ожидалось, поэтому, вероятно, что-то не так с строкой intself (незавершенный символ юникода?)
var str = '<div><b>これを目的に行く価値あり!</b>千葉県のご当地グルメ7選 <写真0> →\
<p>使えそうなものがあれば使う</p>\
</div>';
function extractContent(s) {
var span = document.createElement('span');
span.innerHTML = s;
return span.textContent || span.innerText;
};
console.log(extractContent(str));
Вероятно, было бы чище перебирать детей (здесь <b>
и <p>
) и хватай их textContent
вместо того, чтобы пытаться анализировать текст как HTML:
let outputStr = '';
[...document.querySelector('div').childNodes]
.forEach(node => outputStr += node.textContent);
console.log(outputStr);
<div><b>これを目的に行く価値あり!</b>千葉県のご当地グルメ7選 <写真0> →
<p>使えそうなものがあれば使う
</p>
</div>
Или, более функционально, с reduce
:
const outputStr = [...document.querySelector('div').childNodes]
.reduce((strSoFar, node) => strSoFar + node.textContent, '');
console.log(outputStr);
<div><b>これを目的に行く価値あり!</b>千葉県のご当地グルメ7選 <写真0> →
<p>使えそうなものがあれば使う
</p>
</div>