Возможный дубликат:
Стриптиз HTML из текстового JavaScript
Как я могу удалить HTML из строки в JavaScript?
Возможный дубликат:
Стриптиз HTML из текстового JavaScript
Как я могу удалить HTML из строки в JavaScript?
Использование анализатора браузера - это, вероятно, лучший выбор в текущих браузерах. Следующие действия будут работать со следующими оговорками:
<div>
. HTML, содержащийся в тегах <body>
или <html>
или <head>
, недопустим в пределах <div>
и поэтому не может быть правильно проанализирован.textContent
(свойство стандарта DOM) и innerText
(нестандартные) свойства не идентичны. Например, textContent
будет включать текст внутри элемента <script>
, а innerText
не будет (в большинстве браузеров). Это влияет только на IE <= 8, который является единственным крупным браузером, который не поддерживает textContent
.<script>
.null
<img onerror='alert(\"could run arbitrary JS here\")' src=bogus>
код:
var html = "<p>Some HTML</p>";
var div = document.createElement("div");
div.innerHTML = html;
var text = div.textContent || div.innerText || "";
cleanText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
Distilled from этот сайт (web.achive).
var html = "<p>Hello, <b>World</b>";
var div = document.createElement("div");
div.innerHTML = html;
alert(div.innerText); // Hello, World
Это самый лучший способ сделать это, вы позволяете браузеру делать то, что он делает лучше всего - разобрать HTML.
Изменить: Как отмечено в комментариях ниже, это не самое межсерверное решение. Самое кросс-браузерное решение - рекурсивно пройти через все дочерние элементы элемента и объединить все найденные вами текстовые узлы. Однако, если вы используете jQuery, он уже делает это для вас:
alert($("<p>Hello, <b>World</b></p>").text());
Ознакомьтесь с методом text.
Я знаю, что этот вопрос имеет принятый ответ, но я чувствую, что он не работает во всех случаях.
Для полноты и с тех пор, как я потратил слишком много времени на это, вот что мы сделали: мы закончили использование функции php.js (это довольно хорошая библиотека для тех, кто больше знаком с PHP, но также время от времени делает небольшой JavaScript):
http://phpjs.org/functions/strip_tags:535
Казалось, что это единственный фрагмент кода JavaScript, который успешно обрабатывал все различные виды ввода, которые я вложил в свое приложение. То есть, не нарушая его - см. Мои комментарии о теге <script />
выше.