javascript — необходимо конвертировать менее, чем отметки, в сущности в японских строках

У меня есть форма, которая представляет японский контент следующим образом.

«<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» он не работал.

0

Решение

Ваш код работает, как и ожидалось, поэтому, вероятно, что-то не так с строкой 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));
1

Другие решения

Вероятно, было бы чище перебирать детей (здесь <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>
0

По вопросам рекламы [email protected]