WIP

添付忘れチェック

Thunderbird 3 の添付忘れチェックで日本語のキーワードが反応しないのは、正規表現の問題。

  var keywordsFound = [];
  for (var i = 0; i < keywordsArray.length; i++) {
    var kw = escapeRegxpSpecials(keywordsArray[i]);
    var re = new RegExp("(([^\\s]*)\\b|\\s*)" + kw + "\\b", "i");
    var matching = re.exec(mailData);
    // Ignore the match if it was a URL.
    if (matching && !(/^http|^ftp/i.test(matching[0])))
      keywordsFound.push(keywordsArray[i]);
  }

new RegExp("(([^\\s]*)\\b|\\s*)" + kw + "\\b", "i");\b が曲者。\b は単語の境界にマッチするとのことだけど、英数字と非英数字の境目をチェックしている?

非英数字からなるキーワードの場合

/添付\b/.test("添付") // => false
/添付\b/.test("添付した") // => false
/添付\b/.test("添付 した") // => false
/添付\b/.test("添付 shita") // => false
/添付\b/.test("添付shita") // => true

英字からなるキーワードの場合

/attach\b/.test("attach") // => true
/attach\b/.test("attachした") // => true
/attach\b/.test("attach した") // => true
/attach\b/.test("attach shita") // => true
/attach\b/.test("attachshita") // => false

「添付noファイルwoご確認ください」to書けばいいnoka。