javascript - пример - интересные теги html



Удаление html-тегов и содержимого, где содержимое тега соответствует массиву значений с помощью Xml.parse() (1)

Следующее предложение предпочло попробовать использовать регулярное выражение

var html = '<div>some text then <div><a href="http://example1.com">foo</a></div> and then <span>some <a href="http://example2.com">baa</a>,and finally <a href="http://example3.com">close</a></span></div>';

var linksToRemove = ['baa', 'foo'];
var newHtml = cleanBody(html, linksToRemove);

/**
 * Removes links from html text
 * @param {string} html The html to be cleaned.
 * @param {array} exclude The array of link text to remove.
 * @returns {string} Cleaned html.
 */
function cleanBody(html, exclude) {
    html = html.replace(/\r?\n|\r|\t/g, ''); // used to remove breaks and tabs
    var re = '<a\\b[^>]*>(' + exclude.join('|') + ')<\\/a>';
    return html.replace(new RegExp(re, 'ig'), "");
}

Тест на http://jsfiddle.net/HdsPU/

Я извлек некоторый html из GmailApp, используя .getBody () и хотел бы вернуть некоторый html, который фильтрует определенный тег и содержимое, где содержимое соответствует любому значению в массиве (в частности, ссылки на определенный текст). Глядя на это решение, я считаю, что самый простой способ сделать это - использовать Xml.parse() и фильтровать объект, но не может выйти за рамки создания XmlDocument.

Например, если:

var html = '<div>some text then <div><a href="http://example1.com">foo</a></div> and then <span>some <a href="http://example2.com">baa</a>,and finally <a href="http://example3.com">close</a></span></div>';

а также

var linksToRemove = ['baa','foo'];

как я могу вернуться

var newHtml = '<div>some text then <div></div> and then <span>some ,and finally <a href="http://example3.com">close</a></span></div>';

с помощью

var obj = Xml.parse(html, true);

Я могу получить объект для обработки, но все это отпадает от него (я также рассматривал возможность использования .replace() но учитывая проблемы с сопоставлением с RegEx, подумал, что лучше избегать)





google-apps-script