Как убрать html-теги в строку, затем экранировать обычную строку и вернуть обратно экранированную строку в html-теги - PullRequest
0 голосов
/ 30 сентября 2011

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

var aa = "<p>hi testing & </p>";
var bb = $(aa).text();
var cc = escape(bb);
var dd = aa.replace(bb, cc);

dd дает мне вывод "<p>hi%20testing%20%26</p>", нопроблема в том, когда у меня есть несколько HTML-тегов в строке, например: aa ="<p>hi testing & </p><p> failed & </p>" не работает.

Пожалуйста, помогите.

Заранее спасибо.

1 Ответ

2 голосов
/ 30 сентября 2011

Вы были близки! jQuery.text() очень удобно для этого. Когда вы передадите ей функцию, она заменит текстовое содержимое выбранных элементов на результат функции:

var aa  = "<p>hi testing & </p><p> failed & </p>"
  , $aa = $(aa).text(function(_, content) { return escape(content); })
;

console.log($aa);
// => [<p>​hi%20testing%20%26%20​</p>​, <p>​%20failed%20%26%20​</p>​]
...