[英]Parsing string to find email within string via Google Apps Script
我不是新編碼員,而是Google應用腳本的新手。 我正在嘗試獲取字符串,並找到字符串中包含的電子郵件地址。
string =“這是我要查找的單元格的主體。該主體中有一封電子郵件,例如john.doe@aol.com。”;
電子郵件= FindEmail(字符串);
MailApp.sendEmail(電子郵件,“完成電子郵件”,“”,“這是電子郵件”);
我需要構建一個名為FindEmail的函數,但是坦率地說,不知道如何啟動。
盡管在SO上已經有許多解決方案,但我發現需要對其進行調整以提供所需的簡單性。
這是一個從所有其他答案中濃縮而成的簡單函數-實際上,正則表達式有點過大,但在許多情況下也可用於驗證。 它返回一個地址數組 ,因此,如果只需要第一個地址,則可以將email = findEmails(string)[0]
代碼編寫為email = findEmails(string)[0]
...但是,實際上,您應該在信任它之前進行一些錯誤檢查。
/**
* Return an array of all email addresses found in input string.
*/
function FindEmails(input) {
var regex = /(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/gm
var result = input.match(regex);
return result;
}
電子郵件地址解析庫“電子郵件地址”已針對Google Apps腳本進行了修改。 源代碼是分叉的,可以作為要點使用 。
但是...在您提供的字符串示例中找不到電子郵件地址! 它期望包含地址的字符串大致符合RFC 5322。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.