谷歌应用程序脚本条件if语句

时间:2013-07-01 18:56:59

标签: javascript if-statement google-apps-script conditional conditional-statements

我对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});
}

2 个答案:

答案 0 :(得分:0)

你还不是很清楚,但我希望我能得到你的意思。

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

  1. 我们把字符串剪成第一个字符串。
  2. 我们将cutted部分与正则表达式匹配。
  3. 考虑在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来美化事物。 如果您仍有问题,请写下评论。

答案 1 :(得分:0)

@JonnyJS走在正确的轨道上。我只使用正则表达式。正则表达式文字包含在/ /中,选项出现在最后/之后。我通常使用RegexPal来测试GAS的正则表达式。您可以在MDN上找到有关JS Regex的更多信息。最值得注意的是,我在下面使用的test函数。


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

^字符串的开头

[A-L]任何字母A-L

.*任何字符,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});