1

我是相當新的氣體,但學得很快。預先感謝您提供的任何幫助!谷歌Apps腳本有條件的if語句

我需要能夠根據我的姓場的第一個字符發送電子郵件到兩個不同的電子郵件地址。因此,如果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 = "[email protected]"; 
var subject = "Employment Update Received"; 

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

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

回答

0

@JonnyJS是在正確的軌道上。我只用了正則表達式。正則表達式字面值包含在/ /中,選項發生在最後的/之後。我通常使用RegexPal來測試GAS的正則表達式。你可以在MDN找到更多關於JS Regex的信息。最值得注意的是,我在下面使用了test函數。


下面是我用正則表達式:字符串

[A-L]

^開頭的字母AL

.*任意字符,0或更多次的字符串

$結束

i選項不區分大小寫的正則表達式


這裏是你使用一個片段。

var last = e.values[3].trim(); // Remove any leading spaces to be safe 
var email = "[email protected]"; 

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

if (reAtoL.test(last)) { 
    email = "[email protected]"; 

} else if (reMtoZ.test(last)) { 
    email = "[email protected]"; 
} 

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

Mail.sendEmail(email, subject, "", {htmlBody:message}); 
+0

非常感謝您的幫助。這非常棒!我很欣賞鏈接到正則表達式。 – Shawn

+0

@Shawn如果這個答案是正確的,請標記它。謝謝 – fooby

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美化的東西看IM。 如果你仍然有麻煩,請寫評論。

+0

JohnnyJS,感謝你的幫助。 if/else語句將有所幫助。現在我只需要知道將使用e.value「last」的JS。你向我展示瞭如何以html的形式做到這一點,但我該如何做到這一點,以便我的函數根據if/else條件的結果分析e.value「last」並分配不同的電子郵件地址(var email) ?換句話說,如果var最後開始a-l,那麼var email = [email protected]否則如果var last開始m-z,那麼var email = [email protected]。對於業餘愛好者這樣說,很抱歉。我希望這很清楚。 – Shawn