#javascript #jquery #html-encode
#javascript #jquery #html-кодирование
Вопрос:
Я ищу способ преобразовать номера объектов HTML в символ, используя обычный JavaScript или jQuery.
Например, у меня есть строка, которая выглядит следующим образом (Спасибо, jQuery! Панк.)
Range1amp;#45;of-5
И что мне нужно, так это:
Range1-of-5
Я нашел String.fromCharCode(), где я могу получить символ только с десятичным значением, но я хотел бы посмотреть, есть ли у кого-нибудь еще решение, прежде чем я, возможно, изобрету велосипед. 🙂
Комментарии:
1. Это не объект, а обычная ссылка на символ .
Ответ №1:
Способ jQuery выглядит приятнее, но если вам интересно, вот чистая версия JS:
function decode(encodedString) {
var tmpElement = document.createElement('span');
tmpElement.innerHTML = encodedString;
return tmpElement.innerHTML;
}
decode("Range1amp;#45;of-5");
Комментарии:
1. Прохладный. У меня сработало 🙂
Ответ №2:
Нет необходимости использовать jQuery для этой простой задачи:
'Range1amp;#45;of-5'.replace(/amp;#(d );/g, function(match, number){ return String.fromCharCode(number); })
Тот же принцип может быть применен к amp;#xHHHH; и amp;name; объектам.
Комментарии:
1. Это сработало, но, поскольку я исследую угловые случаи, я обеспокоен тем, что это не будет хорошо масштабироваться в разных вариантах использования. Я поддержал это, поскольку оно кажется мне очень полезным, просто не таким надежным, как я думаю, мне может понадобиться, выходя за рамки первоначального варианта использования, приведенного выше.
Ответ №3:
$("<div/>").html("Range1amp;#45;of-5").text()
Комментарии:
1. Это выглядит самым простым и надежным. Спасибо!