Многие скрипты, использующиеся на сервисе, работают с HTML, вставляемым пользователем (или модератором),
Часто в использующемся HTML содержатся ошибки, и такой код без обработки при вставке ломает страницу,
Написал небольшой код на основе jQuery, проверяющий и корректирующий ошибки в HTML:
Корректируем HTML с ошибками
function correctHTML(str){
return $('<div />').html(str.replace(/(<)(\/?)(?:script)([\s\S]*?)(>)/gim,'$1$2jstoken$3$4')).html().replace(/jstoken/gim,'script');
}
Пример использования: (исправляем строку с HTML с ошибками)
<script>
function correctHTML(str){
return $('<div />').html(str.replace(/(<)(\/?)(?:script)([\s\S]*?)(>)/gim,'$1$2jstoken$3$4')).html().replace(/jstoken/gim,'script');
}
//HTML с ошибками
var str = '<div><div><div>test<script src="/script.js">alert()<'+'/script><plaintext></plaintext></span>';
var str2 = correctHTML(str);
alert(str+'\n\n'+str2); //выведет исходную строку и ниже - исправленную
</script>