Недавно я начал использовать следующий RegEx в функции ReReplace () для удаления тегов HTML из строки с помощью ColdFusion. Обратите внимание: я не использую это в качестве защиты от внедрения XSS или SQL; это только для удаления существующего и безопасного HTML из строки перед ее отображением в атрибуте заголовка HTML.
REReplaceNoCase(str,"<[^>]*>","","ALL")
В полу-связанном вопросе Я спросил, как изменить мой RegEx , чтобы включить пробелы и разрывы строк. Мне сказали, что использование RegEx для этой цели нецелесообразно, и на этот пост ссылались как на объяснение.
Я сильно подозреваю, что отправленные вами регулярные выражения на самом деле работают неправильно. Я бы посоветовал вам не использовать регулярные выражения для разбора HTML, поскольку HTML не является регулярным языком. Вместо этого используйте HTML-парсер. ( Марк Байерс )
Если это правда, то какой инструмент подходит для удаления HTML из строки перед ее отображением? (Учитывая, что HTML уже безопасен, он очищается перед входом в БД).
Мне известны HTMLEditFormat () и HTMLCodeFormat () , но эти две функции не обеспечивают то, что мне нужно; предыдущий заменяет специальные символы на экранированные HTML-эквиваленты, тогда как последний делает то же самое, но также переносит строку в тег <pre>
.
То, что я хотел бы сделать, это очистить строку от HTML и разрывы строк перед отображением в атрибуте заголовка HTML <a title="My string without HTML goes here">...</a>
Бывают случаи, когда HTML не нужен. Скажем, вы хотите отобразить отрывок из поста, например, без HTML, сохраненного вместе с ним.