Как мне преобразовать номер объекта HTML в символ с помощью простого JavaScript или jQuery?

#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()
  

http://jsfiddle.net/durilai/tkwEh/

Комментарии:

1. Это выглядит самым простым и надежным. Спасибо!