0

Gmail でメールの本文を取得するコードがあります

しかし、本文には「HTML タグ」が付いています。これらの「タグ」を除外するにはどうすればよいですか?

例:

本体:

<span><span style="font-weight:bold" dir="ltr">eu</span>: 
<a href="http://neuhaus.com.br" target="_blank">neuhaus.com.br</a>
D6477233ACC7C56D</span><br>

私が必要とするろ過された体:

EU: neuhaus.com.br D6477233ACC7C56D

コード:

function processPending() {  
  var label_pending = GmailApp.getUserLabelByName('Teste');  
  var label_done = GmailApp.getUserLabelByName('TesteDone');  
  var sheet = SpreadsheetApp.getActiveSheet();

  var rowstart = (sheet.getLastRow() + 1)

  var threads = label_pending.getThreads();  

  for (var t in threads) {  
    var thread = threads[t];  

    var message = thread.getMessages()[0];

    var messbody = message.getBody();

    thread.removeLabel(label_pending);  
    thread.addLabel(label_done);

    sheet.getRange(rowstart, getColIndexByName('Conteúdo')).setValue(messbody);
    rowstart++;
  }
  return 0;
}  

function getColIndexByName(colName) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var numColumns = sheet.getLastColumn();
  var row = sheet.getRange(1, 1, 1, numColumns).getValues();
  for (i in row[0]) {
    var name = row[0][i];
    if (name == colName) {
      return parseInt(i) + 1;
    }
  }
  return -1;
}
4

3 に答える 3

1

textContentDOM 要素のプロパティを使用します。HTMLタグが取り除かれています。

于 2012-12-19T14:27:01.460 に答える
0

jQuery の使用が許可されている場合は、$.text()関数を確認する必要があります。

var text = $('<div>Text 1<b>Bold Text</b> Text 2</div>').text();
// stores 'Text 1 Bold Text Text 2'
于 2012-12-19T14:22:47.083 に答える
0

正規表現を使用してタグを削除してみてください

var stripped = messbody.replace(/(\<[^>]+\>)+/g,' ');

これには問題がある場合があるため、注意が必要ですが、リストしたサンプルのような単純な HTML の場合、これは機能します。

于 2012-12-19T14:20:54.647 に答える