Как декодировать html текст
У меня приходит текст из api в таком виде <span class="searchmatch">ES</span>, как этот текст вставить в html что бы убрать теги и оставить только слово
Ответы (2 шт):
Автор решения: Denis640Kb
→ Ссылка
Если без регулярных выражений, то можно так:
let z = '<span class="searchmatch">ES</span>';
let z1 = z.split('>')[1].split('<')[0];
document.getElementById('text').innerText = z1;
<div id="text"></div>
Автор решения: humster_spb
→ Ссылка
Немного доработанный вариант @Denis640Kb - теперь в строке может быть какое угодно количество самых разных тегов:
let str = '<span class="searchmatch">ES5</span><br /><p class="searchmatch">ES6</p><hr /><div class="searchmatch">ES7</div><input type="text" />';
// str.split('>') возвращает нам массив из строки, разбитой на элементы по '>'
let result = str.split('>').reduce((acc,item) => { // проходим по этому массиву
if(item.indexOf('<') != -1 && item.indexOf('<') != 0) { // проверяем, что символ '<' есть в элементе и это не открывающий, а закрывающий тег
return acc.concat(item.split('<')[0]); // "откусываем" от элемента то, что идёт до '<' - это и есть нужный нам текст; помещаем его в массив-аккумулятор
}
return acc; // возвращаем массив с текстом
}, []);
// в цикле выводим текст из массива в HTML
result.forEach((item) => document.getElementById('text').innerText += item+'\n');
<div id="text"></div>