0

受信した電子メールの最初の行は次の形式です。

** 「Doug, Mon And Monta - Test Group」からの新しい更新: この行の上に返信してコメントしてください **

indexOf()誰かが返信すると、サーバー側では、簡単なチェックでそれらの受信行を取り除くことができます。

問題は、一部のメール クライアント (私の Apple Mail など) が、フォームに返信するときに、その行の上に追加のテキストを追加することです。

2012 年 12 月 28 日午前 10 時 19 分、「XYZ コミュニティ - ダグ、モン、モンタ - テスト グループ」に次のように書かれています。

次のような正規表現でそれをトラップしようとしました:

var rx1 = new RegExp('on.*wrote:', 'ig');

これはほとんどの場合に機能しますが、残念ながら、次のような「on」を含むテキストで返信する可能性のあるケースも検出されます。

そのサイトで、私たちが興味を持っているのは、このページで説明されている AgroTagger サービスだと思います...

特定の状況下では、上記のテキストの「on」が見つかり、それ以降のすべてが私のコードによってトリミングされます。

行頭文字を含め、次のように複数行修飾子を追加して、正規表現の範囲を狭めようとしました。

var rx1 = new RegExp('^on.*wrote:', 'igm');

しかし、その場合、その行はまったく見つからず、テキストに含まれています。行頭の ^ メタ文字は、JavaScript 文字列の途中の行では実際には機能しないと思いますか?

とにかく、どんな提案もいただければ幸いです。基本的に、いくつかのバリエーションを使用して、「上記の返信」行を削除していindexOf()ます。私が必要とするのは、メールクライアントがその行の上に不要なテキストを追加する場合のその後の追加チェックです。

ありがとう、

ダグ

ps返信がここに投稿されたときにメール通知を受け取る方法を誰か教えていただければ、とても助かります。これまで試したことはありません。

4

1 に答える 1

1

あなたが説明するテキストについては、これは私のテストで機能しています...

emailBody = emailBody.replace(new RegExp("^On .+ wrote:$[.\\r\\n]*", "im"), "");

...これはあなたの正規表現に非常によく似ています-ですから、なぜあなたの正規表現がまったく一致しなかったのかわかりません。

受信トレイの一部の電子メールで、行の先頭に空白があることに気づきました。おそらくこれはあなたが抱えている問題ですか?その場合、これはそれを修正します:

emailBody = emailBody.replace(new RegExp("^\\s*On .+ wrote:\\s*$[.\\r\\n]*", "im"), "");
于 2012-12-28T03:06:53.503 に答える