1 回答

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
說明/問題:
您的代碼有一個(gè)明顯的問題,并且需要根據(jù)您的評(píng)論進(jìn)行一項(xiàng)額外的修改:
替換
if(msg = "test")
為if(msg == "test")
否則第一個(gè)if
塊語句將始終被執(zhí)行。根據(jù)您的評(píng)論,
msg
這不僅僅是一個(gè)單詞,而是一段文字。并且您想檢查是否test
位于兩個(gè)單詞之間。假設(shè)這些單詞是this
and ,that
您可以使用以下正則表達(dá)式來查看是否test
在this
和之間that
:const?regex?=?RegExp(/(?<=this.*?)test(?=.*?that)/); regex.test(msg)?//?this?returns?true?if?test?is?between?this?and?that
RegExp.prototype.test?()方法允許您驗(yàn)證正則表達(dá)式,并true
在您的情況下獲取正則表達(dá)式和指定字符串之間是否存在匹配msg
。
解決方案:
function autoReplier()?
{var labelObj = GmailApp.getUserLabelByName('autoreply');
var gmailThreads;
var messages;
const regex = RegExp(/(?<=this.*?)test(?=.*?that)/); //modify this and that if you want to use other words
var sender;
for (var gg = 0; gg < labelObj.getUnreadCount(); gg++) {
gmailThreads = labelObj.getThreads()[gg];
messages = gmailThreads.getMessages();
for (var ii = 0; ii < messages.length; ii++)?
? {if (messages[ii].isUnread()){msg = messages[ii].getPlainBody();
? ? if (regex.test(msg)) {
? ? ? ? sender = messages[ii].getFrom();
? ? ? ? MailApp.sendEmail(sender, "Auto Reply", "This is my test");? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? messages[ii].markRead();
? ? ? ? messages[ii].moveToTrash();
? ? } else {
? ? ? ? sender = messages[ii].getFrom();
? ? ? ? MailApp.sendEmail(sender, "Auto Reply", "Sorry, your keyword was not recognized");? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? messages[ii].markRead();
? ? ? ? messages[ii].moveToTrash();
}}}}
}
添加回答
舉報(bào)