Javascript: не может удалить тег <script>из строки - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь убрать теги из строки HTML

Все хорошо, кроме тегов <script> внутри строки, которые нарушают функцию.

вот оно:

function stripHTML(value) {
    // remove script tags
    value = value.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');

    // Convert `&amp;` to `&`.
    value = value.replace(/&amp;/gi, '&');

    // Replace spaces.
    value = value.replace(/&nbsp;/gi, ' ');
    value = value.replace(/\s+/g, ' ');

    // Remove "<b>".
    value = value.replace(/<b[^r>]*>/gi, ''); // do not mess with <br>!
    value = value.replace(/<\/b>/gi, '');

    // Remove "<strong>".
    value = value.replace(/<strong[^>]*>/gi, '');
    value = value.replace(/<\/strong>/gi, '');

    // Remove "<i>".
    value = value.replace(/<i[^>]*>/gi, '');
    value = value.replace(/<\/i>/gi, '');

    // Remove "<em>".
    value = value.replace(/<em[^>]*>/gi, '');
    value = value.replace(/<\/em>/gi, '');

    // Remove "<u>".
    value = value.replace(/<u[^>]*>/gi, '');
    value = value.replace(/<\/u>/gi, '');

    // Tighten up "<" and ">".
    value = value.replace(/>\s+/g, '>');
    value = value.replace(/\s+</g, '<');

    // Replace "<br>".
    //value = value.replace(/<br>/gi, '\n');

    // Replace "<div>" (from Chrome).
    value = value.replace(/<div[^>]*>/gi, '');
    value = value.replace(/<\/div>/gi, '<br><br>');

    // Replace "<p>" (from IE).
    value = value.replace(/<p[^>]*>/gi, '');
    value = value.replace(/<\/p>/gi, '<br><br>');

    // Replace "<h*>" (from IE).
    value = value.replace(/<h[^>]*>/gi, '');
    value = value.replace(/<\/h[^>]>/gi, '<br><br>');

    // No more than 2x newline, per "paragraph".
    //value = value.replace(/\n\n+/g, '\n\n');
    value = value.replace(/<br><br>+/g, '<br><br>');

    // remove trailing <br>s
    value = value.replace(/(<br\s*\/?\s*>\s*)+$/g, '');

    // Whitespace before/after.
    value = $.trim(value);

    return value;
};

И вот скрипка , показывающая, что происходит (если вы убираете часть <script>alert("gianni")</script> из строки, все работает)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...