Я пытаюсь удалить все теги html из строки в Javascript. Вот что у меня есть ... Я не могу понять, почему он не работает .... кто-нибудь знает, что я делаю не так?
<script type="text/javascript">
var regex = "/<(.|\n)*?>/";
var body = "<p>test</p>";
var result = body.replace(regex, "");
alert(result);
</script>
Большое спасибо!
javascript
regex
Гейб
источник
источник
"<img src=bogus onerror=alert(1337)"
. Первый не работает, потому что синтаксический анализатор HTML не требует, чтобы последний тег был закрыт символом a>
, а второй не работает, потому что загрузка изображения начинается еще до того, как проанализированное дерево DOM добавляется в DOM, и$('<img ...>')
вызывает анализатор HTML.>
в значение атрибута включено; вот так<div data="a + b > c">
Это старый вопрос, но я наткнулся на него и подумал, что поделюсь методом, который использовал:
sanitized
теперь будет содержать:"some text and some more text"
Просто, не требует jQuery и не подведет даже в более сложных случаях.
источник
innerText
temp.textContent
если он существует, и попробует, толькоtemp.innerText
если его нет. В вашем браузере должно быть первое, но для браузеров, в которых его нет, вместо него используется второе :)Это сработало для меня.
источник
console.log( my_html.replace(/( |<([^>]+)>)/ig, "") );
Вот как это делает TextAngular (редактор WYSISYG). Я также обнаружил, что это наиболее последовательный ответ - NO REGEX.
источник
вы можете использовать мощную библиотеку для управления String - undrescore.string.js
=> 'ссылка'
=> 'a linkalert ("привет, мир!")'
Не забудьте импортировать эту библиотеку следующим образом:
источник
В моей простой библиотеке JavaScript под названием FuncJS есть функция с именем «strip_tags ()», которая выполняет эту задачу за вас - без необходимости вводить какие-либо регулярные выражения.
Например, предположим, что вы хотите удалить теги из предложения - с помощью этой функции вы можете сделать это просто так:
Это произведет «Эта строка содержит много тегов!».
Для лучшего понимания прочтите документацию на GitHub FuncJS .
Кроме того, если хотите, оставьте отзыв через форму. Это было бы мне очень полезно!
источник
strip_tags()
рассказать, что делает, вместо того, чтобы просто продвигать вашу библиотеку и не объяснять ее? Ссылка объясняет использование API, но не то, что он делает .strip_tags = function(e) { var _hasTag, _tag_string; if (!(e === void 0 || e === null || e === "")) { _tag_string = e; if (typeof _tag_string === "object") { _tag_string = _tag_string.outerHTML; } _hasTag = _tag_string.match(/(<([^>]+)>)/ig); if (_hasTag) { return trim(_tag_string.replace(/(<([^>]+)>)/ig, '')); } else { return trim(_tag_string); } } else { throw new Error("The 'strip_tags' function expects one argument in the form of a string or object."); } };
Это решение для тегов HTML, & nbsp и т. Д., И вы можете удалять и добавлять условия, чтобы получить текст без HTML, и вы можете заменить его любым.
источник
Для правильного дезинфекции HTML в JS см. Http://code.google.com/p/google-caja/wiki/JsHtmlSanitizer.
источник
источник
Выбранный ответ не всегда гарантирует, что HTML-код будет удален, поскольку все еще можно создать через него недопустимую строку HTML, создав строку, подобную следующей.
Этот ввод гарантирует, что при зачистке будет собран набор тегов для вас, и в результате получится:
Кроме того, текстовая функция jquery удаляет текст, не окруженный тегами.
Вот функция, которая использует jQuery, но должна быть более устойчивой в обоих случаях:
источник
Я делаю это практически однострочно.
Функция создает объект Range, а затем создает DocumentFragment в Range со строкой в качестве дочернего содержимого.
Затем он захватывает текст фрагмента, удаляет все «невидимые» символы / символы нулевой ширины и обрезает его от любых начальных / конечных пробелов.
Я понимаю, что этот вопрос старый, я просто подумал, что мое решение уникально, и хотел поделиться. :)
источник
Как утверждали другие, регулярное выражение не будет работать. Найдите минутку, чтобы прочитать мою статью о том, почему вы не можете и не должны пытаться анализировать html с помощью регулярного выражения, что вы делаете, когда пытаетесь удалить html из исходной строки.
источник