Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.04.2020, 19:44
Аватар для ozoro
Аспирант
Отправить личное сообщение для ozoro Посмотреть профиль Найти все сообщения от ozoro
 
Регистрация: 04.05.2019
Сообщений: 80

Как конвертировать HTML-сущности в строке в соответствующие символы
Пробовал так

var str = 'Только буквы, цифры и символы  <b>. – _</b>';

function convert(str){
	str = str.replace('&','&');
	str = str.replace('>','>');
	str = str.replace('&lt;','<');
	str = str.replace('&quot;','"');
	str = str.replace("'","'");
	return str;
}
//выводит
console.log(convert(str)); //Только буквы, цифры и символы  <b>. – _&lt;/b&gt;

//нужно чтобы выводило следующее:
//Только буквы, цифры и символы  <b>. – _</b>



Пробовал также:
var str = 'Только буквы, цифры и символы  &lt;b&gt;. – _&lt;/b&gt;';

function convert(str){
	str = str.replace('&amp;','&');
	str = str.replace('&gt;','>');
	str = str.replace('&lt;','<');
	str = str.replace('&quot;','"');
	str = str.replace("'","'");
	return str;
}

var ptrn = new RegExp("\\b(&amp;|&gt;|&lt;|&quot;|')\\b", "gi");
						
function escapeHtml(str) {
	return String(str).replace(ptrn, function (s) {
	return convert[s];
	});
}

console.log(escapeHtml(str)); //ничего не выводит


Можно также на jquery ответить...

Заранее, благодарю!

Последний раз редактировалось ozoro, 13.04.2020 в 19:47.
Ответить с цитированием
  #2 (permalink)  
Старый 13.04.2020, 20:03
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

var str = 'Только буквы, цифры и символы  &lt;b&gt;. – _&lt;/b&gt;';
 
function convert(str){
    return str.replace(/&quot;/g,'"')
    .replace(/&gt;/g,'>')
    .replace(/&lt;/g,'<')
    .replace(/&amp;/g,'&')
}

console.log(convert(str));
Ответить с цитированием
  #3 (permalink)  
Старый 13.04.2020, 20:14
Аватар для ozoro
Аспирант
Отправить личное сообщение для ozoro Посмотреть профиль Найти все сообщения от ozoro
 
Регистрация: 04.05.2019
Сообщений: 80

voraa,
Благодарю, помог! Все работает. + в карму...
Ответить с цитированием
  #4 (permalink)  
Старый 13.04.2020, 20:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

ozoro,
var str = 'Только буквы, цифры и символы  &lt;b&gt;. – _&lt;/b&gt;';
function convert(str){
    var div = document.createElement('div');
    div.innerHTML = str;
    return div.textContent;
}

console.log(convert(str));
Ответить с цитированием
  #5 (permalink)  
Старый 13.04.2020, 20:47
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

рони
Не достаточно универсально.
В Worker нельзя использовать.
Ответить с цитированием
  #6 (permalink)  
Старый 13.04.2020, 20:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от voraa
В Worker нельзя использовать.
почему?
Ответить с цитированием
  #7 (permalink)  
Старый 13.04.2020, 20:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

voraa,
а так будет работать в Worker?
var str = 'Только буквы, цифры и символы  &lt;b&gt;. 11– _&lt;/b&gt;';
function convert(str){
  return new DOMParser().parseFromString(str, "text/html").body.textContent;
}

console.log(convert(str));
Ответить с цитированием
  #8 (permalink)  
Старый 13.04.2020, 21:00
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Worker-ам недоступен глобальный объект windows.
Поэтому там нет document и всего, что с ним связано.
Там свой глобальный объект self.
https://developer.mozilla.org/en-US/...obalScope/self

Последний раз редактировалось voraa, 13.04.2020 в 21:04.
Ответить с цитированием
  #9 (permalink)  
Старый 13.04.2020, 21:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

voraa,
спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в html вставить код, а конкретно переменную js Амай Общие вопросы Javascript 1 17.01.2020 18:32
Как мне обработать регистрацинную форму в html? jazzmake Серверные языки и технологии 4 15.01.2020 04:33
Не понимаю как вставить html разметку Alexprom Общие вопросы Javascript 10 14.12.2019 10:58
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25