HTMLテキストをプレーンテキストに変換する3つの方法


私は先日リッチテキストエディタで働いていて、HTMLタグを文字列から取り除き、データベースに格納する必要がありました.そして、私がこれをしようとしている誰にでも便利になることができたということを学んだいくつかの方法が、ここにあります.
しようとしているのは、文字列からタグを削除し、文字列をプレーンテキストとして印字可能にすることです.飛び込みましょう.

1 )使用.置換(/[^^]]*/g ,')
このメソッドは、テキストからタグを削除する簡単で効率的な方法です.このメソッドは.replace(old value,new value) HTMLタグの値を空の文字列に置き換えます.The /g がグローバルに発生するために使用される(文字列中のすべての値は、/g を用いる).
このメソッドの欠点は、いくつかのHTMLエンティティを削除できないことです.それでもうまく機能します.
var myHTML= "<div><h1>Jimbo.</h1>\n<p>That's what she said</p></div>";

var strippedHtml = myHTML.replace(/<[^>]+>/g, '');

// Jimbo.
// That's what she said
console.log(stripedHtml);

2 )一時的なDOM要素を作成し、テキストを取得する
これはタスクを行う最も効率的な方法です.ダミー要素を作成し、変数に代入します.要素オブジェクトを使用して後で展開できます.HTML要素のinnerhtmlにHTMLテキストを割り当て、テキスト要素オブジェクトからプレーンテキストを取得します.
function convertToPlain(html){

    // Create a new div element
    var tempDivElement = document.createElement("div");

    // Set the HTML content with the given value
    tempDivElement.innerHTML = html;

    // Retrieve the text property of the element 
    return tempDivElement.textContent || tempDivElement.innerText || "";
}

var htmlString= "<div><h1>Bears Beets Battlestar Galactica </h1>\n<p>Quote by Dwight Schrute</p></div>";


console.log(convertToPlain(htmlString));
// Expected Result:
// Bears Beets Battlestar Galactica 
// Quote by Dwight Schrute

3 )テキストnpmパッケージへのHTML
これは最近発見したパッケージです.これはHTMLを解析し、美しいテキストを返すコンバータです.これは多くのオプションがプレーンテキストに変換するようになりますwordwrap , tags , whitespaceCharacters , formattersetc .
パッケージ.パッケージの使用にはJSONが必要です.パッケージを最初にインストールし、それをファイルに使用する必要があります.
パッケージの公式docを見つけることができますhere .

インストール
npm install html-to-text

用途
const { htmlToText } = require('html-to-text');

const text = htmlToText('<div>Nope Its not Ashton Kutcher. It is Kevin Malone. <p>Equally Smart and equally handsome</p></div>', {
    wordwrap: 130
});
console.log(text); // expected result: 
// Nope Its not Ashton Kutcher. It is Kevin Malone.

// Equally Smart and equally handsome

プロジェクトの例を見つけるhere .
そして、それはそれを合計します.ありがとう!