我有一份表格,作为我的非政府组织接收志愿者团队的申请。我想要做的是创建一个脚本,当有人填写表单时,该脚本会向注册商发送电子邮件。这是我知道该怎么做的简单部分。
我想在“电子邮件通知”中包含一些问题的几个关键答案,供注册商查看。我也知道如何完成。
这是我当前的代码:
function Team_ApplicationMailer(e) {
var recipient = "myemail@gmail.com";
var timestamp = e.values[0];
var name = e.values[3];
var country = e.values[1]
var subject = e.values[1]+' wants to Volunteer!' ;
var startdate = e.values[12];
var enddate = e.values[13]
var hyperlink = "mylink.com"
htmlBody = '<u><strong>'+name+'</u></strong> from: <u><strong>'+country+'</strong></u>just completed the Teams Application Form for these dates: <u><strong>'+startdate+' to '+enddate+'</u></strong><br><br>Form completed on: <u><strong>'+timestamp+'</u></strong><br><br>View the Form: <a href="'+hyperlink+'">Click Here</a>';
MailApp.sendEmail(recipient, subject, htmlBody, {htmlBody:htmlBody});
}
这是我想要添加的棘手部分:我还想添加在e.values [19]和e.values [20]中找到的数据,但这些值来自多项选择(e.values [19] )或复选框(e.values [20]),我需要简化的值 - 即删除了一些文本 - 可能在通过电子邮件发送时分割
这两个问题基本相同。 e.values [19]是“你想做什么:第一优先”,有一些多项选择。和e.values [20]是“你还想做什么”的一些复选框选项。这两个问题都有相同的7个选择,每个选项都有很长的描述(因此需要缩短)
基本上我想要e.values [19]这个值看起来像这样:
optionX :(详细说明)
在电子邮件中显示如下:
你想做什么:optionX。
我不希望包含“()”中的选项的长描述。
对于e.values [20],我希望电子邮件中的值如下所示:
您还想做什么:optionA,optionB,optionC
INSTEAD of This:
optionA :(长描述),optionB :(长描述),optionC :(长描述)
我查看了.replace和.split函数,但不知道如何使它们一起工作,特别是对于复选框选项。
感谢您的帮助!
答案 0 :(得分:1)
我为此写了一个函数。它只删除括号()
内的任何内容。这似乎是你正在寻找的。
var s = e.values[19];
s = s.replace(/\([^)]*\)/g,"");
如果括号内有括号,请告诉我,我必须快速编辑。
所以这里发生了什么。
(
。 )
时,它正在寻找尽可能多的字符。这里面没有)
。
)
,则会匹配optionA:
(...), optionB: (...), optionC: (...)
。我们希望避免这种情况,因此我们不允许)
在里面。这就是[^)]
的含义。 g
标志表示匹配“全局”或字符串中的任何位置。