2014-02-03 12 views
1

Я пытаюсь использовать JavaScript функцию замены, чтобы включить HTML сущность < в <, как так

text = text.replace(/&lt;/g, "<"); 
text = text.replace(/&gt;/g, ">"); 

исходный текст выглядит следующим образом:

&lt;img /&gt; 

Я пытаюсь получить это выглядеть следующим образом:

<img /> 

Однако, когда я запускаю приведенный выше код, я получаю ... это:

$lt;img /> 

Интересно, что замена знака> работает нормально, но замена < знака производит нечто совершенно неожиданное (где, черт возьми, что знак $ приходят из ???).

Я хотел бы также отметить, что если добавить пробел перед < в функции замены, например:

text = text.replace(/&lt;/g, "< "); 

Он производит это:

< img /> 

К сожалению, это не получить синтаксический анализ в HTML, как я хочу, чтобы он ...

EDIT: Если это помогает, текст, который я выполняю это, является ответомText XMLHttpRequest.

+1

Вы получаете знак доллара? Или это опечатка? – putvande

+1

'replace' оставляет исходную строку без изменений! – undefined

+0

* "исходный текст выглядит примерно так:' < img/> 'Однако, когда я запускаю приведенный выше код, я получаю ... это:' $ lt; img /> '" * Нет, я действительно не думаю, что делаете. Вы что-то путали в процессе сокращения этого вопроса. Начиная с '< img/>', указанные вами замены определенно не дадут вам '$ lt; img />'. –

ответ

3

Вы заменяете замену, когда делаете это так. Попробуйте сделать это как цепь:

var text = '&lt;img /&gt;'; 
text = text.replace(/&lt;/g, "<").replace(/&gt;/g, ">"); 
// Output = <img /> 

Или вы могли бы сделать, назначить замену на text переменной:

var text = '&lt;img /&gt;'; 
text = text.replace(/&lt;/g, "<"); 
text = text.replace(/&gt;/g, ">"); 
// Output = <img /> 
+0

Опять же, я забыл указать назначения, когда я ввел это изначально, назначения есть в фактическом коде.Проблема в том, что запуск функции replace, как указано, создает «$ lt;» (и да, это знак доллара). – user2707633

0

Хорошо, это довольно неловко, но выясняется, что причина, что $ появлялся, потому что это было то, что было в исходном коде ...

Я заменил $ &, и теперь он отлично работает.

В любом случае, спасибо за отзыв и извините, что тратили свое время на простую ошибку.

Смежные вопросы