Убрать HTML из текстового JavaScript

Вы не говорите, на какой платформе вы нацеливаетесь. Однако ссылаясь на таблицы как на файлы, я полагаю, что вы не используете DB2 в Linux, UNIX или Windows (LUW).

Однако, если вы являются в DB2 LUW, см. Инструкцию MERGE :

Для вашего оператора примера это будет написано как:

merge into file1 a
   using (select anotherfield, something from file2) b
   on substr(a.firstfield,10,20) = substr(b.anotherfield,1,10)
when matched and a.firstfield like 'BLAH%'
   then update set a.firstfield = 'BIT OF TEXT' || b.something;

Обратите внимание: для DB2 третий аргументом функции SUBSTR является количество возвращаемых байтов, а не конечная позиция. Поэтому SUBSTR (a.firstfield, 10,20) возвращает CHAR (20). Однако SUBSTR (b.anotherfield, 1,10) возвращает CHAR (10). Я не уверен, что это было сделано специально, но это может повлиять на ваше сравнение.

568
задан Gideon 25 May 2015 в 03:54
поделиться

4 ответа

Если вы работаете в браузере, то самый простой способ - просто позволить браузеру сделать это за вас ...

function stripHtml(html)
{
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent || tmp.innerText || "";
}

Примечание: как отметили люди в комментарии, этого лучше избегать, если вы не контролируете источник HTML (например, не запускайте его на чем-либо, что могло бы быть получено из пользовательского ввода). Для этих сценариев вы можете все же позволить браузеру сделать всю работу за вас - см. Ответ Сабы об использовании теперь широко доступного DOMParser .

714
ответ дан 22 November 2019 в 22:00
поделиться
myString.replace(/<[^>]*>?/gm, '');
540
ответ дан 22 November 2019 в 22:00
поделиться

Another, admittedly less elegant solution than nickf's or Shog9's, would be to recursively walk the DOM starting at the tag and append each text node.

var bodyContent = document.getElementsByTagName('body')[0];
var result = appendTextNodes(bodyContent);

function appendTextNodes(element) {
    var text = '';

    // Loop through the childNodes of the passed in element
    for (var i = 0, len = element.childNodes.length; i < len; i++) {
        // Get a reference to the current child
        var node = element.childNodes[i];
        // Append the node's value if it's a text node
        if (node.nodeType == 3) {
            text += node.nodeValue;
        }
        // Recurse through the node's children, if there are any
        if (node.childNodes.length > 0) {
            appendTextNodes(node);
        }
    }
    // Return the final result
    return text;
}
7
ответ дан 22 November 2019 в 22:00
поделиться

Да. Просмотрите пространство имен Microsoft.SqlServer.Dts.Runtime . Класс Package предоставит методы для его запуска.

Также я заменил теги

и
на \ n (символ новой строки), чтобы сохранить какое-то визуальное форматирование.

Чтобы изменить формат ссылки (например, BBC (Link-> http://www.bbc.co.uk) ), просто отредактируйте $ 2 (Link -> $ 1) , где $ 1 - это URL / URI href, а $ 2 - текст гиперссылки. Благодаря тому, что ссылки находятся непосредственно в тексте, большинство почтовых клиентов SMTP преобразуют их, чтобы пользователь мог нажимать на них.

Надеюсь, вы найдете это полезным.

co.uk) ) просто отредактируйте $ 2 (Link -> $ 1) , где $ 1 - это URL / URI href, а $ 2 - это гиперссылка на текст. Благодаря тому, что ссылки находятся непосредственно в тексте, большинство почтовых клиентов SMTP преобразуют их, чтобы пользователь мог нажимать на них.

Надеюсь, вы найдете это полезным.

co.uk) ) просто отредактируйте $ 2 (Link -> $ 1) , где $ 1 - это URL / URI href, а $ 2 - это гиперссылка на текст. Благодаря тому, что ссылки находятся непосредственно в тексте, большинство почтовых клиентов SMTP преобразуют их, чтобы пользователь мог нажимать на них.

Надеюсь, вы найдете это полезным.

38
ответ дан 22 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: