添付忘れチェック
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。