2013-12-10 32 views
0

我創建了一個Google表單,要求用戶從列表中選擇一個名稱和ID。名稱和ID的格式可以是以下兩種:每次提交Google表單時,如何通過電子表格向電子郵件分析字符串?

Smith, John (12345) 
Doe, John (JDO) 

我想電子郵件給每形式與主題行包含在括號中的ID提交時間被自動發送到地址只要。我有自動發送的電子郵件,可以從我想要的單元格中獲取整個字符串,但是我需要一個可以將字符串解析爲括號內的函數的函數。這是迄今爲止我從這個論壇上找到的幫助拼湊起來的(感謝[email protected])。

function Initialize() { 

    var triggers = ScriptApp.getScriptTriggers(); 

    for(var i in triggers) { 
    ScriptApp.deleteTrigger(triggers[i]); 
    } 

    ScriptApp.newTrigger("SendGoogleForm") 
    .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()) 
    .onFormSubmit() 
    .create(); 
    } 

    function SendGoogleForm(e) 
    { 
    try 
    { 
    // You may also replace this with another email address 
    var email = "[email protected]"; 

    // Optional but change the following variable 
    // to have a custom subject for Google Docs emails 


    var s = SpreadsheetApp.getActiveSheet(); 
    var subject = s.getRange(s.getLastRow(),21).getValue(); 
    var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];  
    var message = "";  

    // Credit to Henrique Abreu for fixing the sort order 

    for(var i in headers) { 
     message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n"; 
    } 

    message += "Sheet URL :: " + SpreadsheetApp.getActiveSpreadsheet().getUrl() + "\n"; 

    // This is the MailApp service of Google Apps Script 
    // that sends the email. You can also use GmailApp here. 

    MailApp.sendEmail(email, subject, message); 

    } catch (e) { 
    Logger.log(e.toString()); 
    } 

} 

我只是新來的JavaScript,所以任何幫助將不勝感激。

乾杯。

回答

0

由於ID在兩種格式包含在括號內,則可以使用JavaScript字符串操作以有效地隔離開來:

... 
var subject = s.getRange(s.getLastRow(),21).getValue() 
       .split('(')[1].split(')')[0]; 
... 

說明:split() method斷線成子陣列。我們首先拆分開放式括號,我們預計會給我們兩個子字符串。我們選擇第二個(或第1個,因爲數組索引從0開始)子字符串,其中包含該ID,並進一步將其分割在近圓括號中。從該數組中,第一個(第0個)元素是我們的ID。

相關問題