2016-06-25 7 views
-1

テキスト形式にWYSIWYGを使用しています。ある時点で、私はそのテキストをつかみ、それをテキスト形式で電子メールで送る必要があります。だから私は改行と段落を維持しながらすべてのHTMLタグを削除しようとしている。HTMLをテキストに出力する

また、箇条書きリストを保存し、箇条書きを " - "に置き換えることにしました。

var txt = $('#myEditor').summernote('code') 
      .replace(/<\/p>/gi, "\n") 
      .replace(/<br\/?>/gi, "\n") 
      .replace(/<li\/?>/gi, " \n- ") 
      .replace(/<ol\/?>/gi, " \n- ") 
      .replace(/<\/?[^>]+(>|$)/g, ""); 

1つの例外を除いてALMOST OKが動作しているようです。次のHTMLコード:

塊最後のリスト項目と段落の行:

ここではいくつかのデモ文。

  • 順序なしリスト項目1

  • 順序なしリスト項目ここでは2 つ以上の文。

  • 番号付きリスト項目

  • 番号付きリスト項目2

$( '#のmyEditor')summernote( 'コード')が返されます。

<p>Some demo sentence here.</p><ul><li>Unordered list item 1</li><li>Unordered list item 2<br></li></ul><p>One more sentence here.<br></p><ol><li>Ordered list item</li><li>Ordered list item two<br></li></ol> 
+0

'$( '#myEditor')。summernote( 'code')' return? – guest271314

+0

@ guest271314投稿を更新しました。 – santa

+0

各要素内のテキストの期待結果は別の行に配置されますか? – guest271314

答えて

-1

あなたがlynxを使用して試みることができますあなたがやろうとしていることを本質的に行うテキストベースのWebブラウザです。Webページをテキストとして表示します。

Lynxでは、pを押してページをテキストファイルに「印刷」することができます。期待される結果は、別々の行に配置される$("#myEditor").summernote("code")によって返される各要素のテキスト内容のためのものである場合

+0

私は両方の出力が必要です。 1つはHTML電子メールに、もう1つはテキストメッセージ用のプレーンテキスト版に使用されます。 – santa

0

は、.contents().map().trim()は各要素の"\n"以下の値を連結するために使用できる.nodeValue又は.textContent

var htmlStr = "<p>Some demo sentence here.</p><ul><li>Unordered list item 1</li><li>Unordered list item 2<br></li></ul><p>One more sentence here.<br></p><ol><li>Ordered list item</li><li>Ordered list item two<br></li></ol>"; 
 

 
var res = ""; 
 

 
$(htmlStr).contents().map(function(i, el) { 
 
    var curr = (el.nodeValue || el.textContent).trim(); 
 
    if (curr.length) res += curr + "\n" 
 
}); 
 

 
console.log(res); 
 

 
$("pre").text(res);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre></pre>

関連する問題