簡體   English   中英

解析字符串以通過Google Apps腳本在字符串中查找電子郵件

[英]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腳本進行了修改。 源代碼是分叉的,可以作為要點使用

  • 庫密鑰M26NvEFUvGLQadhq7G3OQmgFzUAA6_aCl可公開獲得。
  • 可在此處找到文檔。

但是...在您提供的字符串示例中找不到電子郵件地址! 它期望包含地址的字符串大致符合RFC 5322。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM