1 回答

TA贡献1790条经验 获得超9个赞
说明/问题:
您的代码有一个明显的问题,并且需要根据您的评论进行一项额外的修改:
替换
if(msg = "test")
为if(msg == "test")
否则第一个if
块语句将始终被执行。根据您的评论,
msg
这不仅仅是一个单词,而是一段文字。并且您想检查是否test
位于两个单词之间。假设这些单词是this
and ,that
您可以使用以下正则表达式来查看是否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 ()方法允许您验证正则表达式,并true
在您的情况下获取正则表达式和指定字符串之间是否存在匹配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();
}}}}
}
添加回答
举报