実現したいこと
ここに実現したいことを箇条書きで書いてください。
- Gmailの本文内にある、たとえば「Deadline: March 9, 3pm」という文字から、"March"など月の言葉のみ抜き出すようにする。
前提
GASとGmail、Google スプレッドシートを組み合わせて、納期表をつくろうとしています。
その過程で、.replaceを使って"March"の後にある空白文字を取り除こうとしているのですが、うまくいきません。
なお私は、GASを2年ほど使用していますが、コードに関しては素人で自学自習で覚えたので、コードの書き方について美しくないところなどあるとおもいます。その点についてはご容赦ください。
発生している問題・エラーメッセージ
下のコードを実行すると、文字が一文字も抜き出せません。
該当のソースコード
GAS
1function Order () { 2 let threads = GmailApp.search('in:inbox from:★差出人★ subject: [Dispatch] -label:★ラベル名★'); 3 4 threads.forEach(function(thread) { 5 let messages = thread.getMessages(); 6 7let message = messages[0]; 8let plainBody = message.getPlainBody(); 9 10let today = new Date(); 11let year = today.getFullYear(); 12 13let monthEng = plainBody.match(/Deadline: [A-Za-z]{3,9} /)[0].replace("Deadline: ","").replace(" ","");
試したこと
最後のコードを
let monthEng = plainBody.match(/Deadline: [A-Za-z]{3,9} /)[0].replace("Deadline: ","");
に変えると、"March "のように空白文字が最後に残った形で抜き出せます。
最後のコードを
let monthEng = plainBody.match(/Deadline: [A-Za-z]{3,9} /)[0].replace(/\s+/g, "").replace("Deadline:","");
に変えると、文字は一文字も抜き出せません。
最後のコードを
let monthEng = plainBody.match(/Deadline: [A-Za-z]{3,9} /)[0].replace(/\s+/g, "").replace("Deadline","");
に変えると、"March:" と抜き出すことができて空白文字を取ることができますが、今度は":"が残ってしまいます。
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー