[英]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.