1

我对 GAS 很陌生,但学得很快。提前感谢您对此提供的任何帮助!

我需要能够根据我姓氏字段的第一个字符向两个不同的电子邮件地址发送电子邮件。因此,如果 var last 的第一个字符是 A - L,则将电子邮件发送给此人,否则,如果第一个字符是 M - Z,则发送给此其他人。我将如何为此创建条件 if 语句?我当前将所有电子邮件发送到同一地址的当前脚本如下:

function onFormSubmit(e) {

var timestamp = e.values[0];
var last = e.values[3];
var first = e.values[4];
var employment_status = e.values[5];
var unemployed_date = e.values[6];
var employment_type = e.values[7];
var employer_name = e.values[8];
var employer_address = e.values[9];
var employment_begin = e.values[10];
var comments = e.values[11];

var email = "xxxxx@gmail.com";
var subject = "Employment Update Received";

var message = "<HTML><BODY>"
+ "<P>Dear " + first + " " + last + ","
etc. etc.
+ "</HTML></BODY>";

MailApp.sendEmail(email, subject, "", {htmlBody: message});
}
4

2 回答 2

0

你还不是很清楚,但我希望我明白你的意思。

我通过使用两个内置的 js 东西来解决它。

  1. 我们将字符串切到第一个后者。
  2. 我们将切割的部分与正则表达式匹配。

考虑在JSFIDDLE上的视图

让我们先写标记:

<form>
<input name="last" type="text"/></form>
<br><br>
<div id="status">
</div>

现在一些JS:

var rel = new RegExp("[a-l A-L]");
var rez = new RegExp("[m-z M-Z]");
$("form input").on("change",function(e){
    vall = $("form input").val().substr(0,1);
    console.log(vall);
    if (rel.exec(vall)) {
        $("#status").text("We Got a winner! the last name starts with letter from a-l");
    }
    else if (rez.exec(vall)) {
         $("#status").text("Hodey! the last name starts with letter from m-z");
    }
    else {
        $("#status").text("Well, Nothing cool here.");
    }
});

正如你所看到的,我使用 jquery 来美化事物。如果您仍然遇到麻烦,请在评论中写下。

于 2013-07-07T15:55:26.783 回答
0

@JonnyJS 是在正确的轨道上。我只使用了正则表达式。正则表达式文字被包裹起来 / /,选项出现在最后一个/. 我通常使用RegexPal来测试 GAS 的正则表达式。您可以在MDN上找到有关 JS 正则表达式的更多信息。最值得注意的是,我在下面使用的测试功能。


这是我使用的正则表达式:

^字符串的开头

[A-L]任何字母 AL

.*任意字符,0次或多次

$字符串结束

i不区分大小写的正则表达式的选项


这是一个片段供您使用。

var last = e.values[3].trim(); // Remove any leading spaces to be safe
var email = "Catch-Other-Names@mydomain.com";

var reAtoL = /^[A-L].*$/i;
var reMtoZ = /^[M-Z].*$/i;

if (reAtoL.test(last)) {
  email = "A-to-L-Recipient@mydomain.com";

} else if (reMtoZ.test(last)) {
  email = "M-to-Z-Recipient@mydomain.com";
}

// If both fail, then it's going to the Catch Other Names

Mail.sendEmail(email, subject, "", {htmlBody:message});
于 2013-07-18T14:34:14.440 回答