如何从文本中解析/修剪电子邮件地址
How to parse/trim email addresses from text
类似于这个问题,但不确定在这种情况下如何实现。
受信任的用户(不需要关心验证输入(正在将电子邮件地址键入/粘贴到文本字段中。在模糊事件中,我想查看文本并清理他输入的内容(通常是在从电子邮件客户端复制和粘贴地址列表之后(。
"Bob Smith" <bob@company.com>, joe@company.com, "John Doe"<john@company.com>
将被调整为:
bob@company.com, joe@company.com, john@company.com
此正则表达式应删除双引号中的任何字符以及<
和>
字符。
/".*?"|[<>]/
在Javascript中,您可能有以下内容:
line.replace(/".*?"|[<>]/g, '');
有效的电子邮件地址可能非常奇怪,所以我建议不要禁止该字段中的任何内容,否则很可能您的程序毫无用处,因为您的用户将无法将电子邮件发送到有效的电子邮件地址。
要阅读整个故事,请参阅这篇博客文章或自己去RFC。
var emailList = userInput
.replace(/[^,;]*.?</g, "")
.replace(/>/g, "")
.replace(/[,; ]{1,}/g, "'n")
.replace(/['n]{2,}/g, "'n")
.split("'n")
这允许以以下格式提供电子邮件列表(包括从你的谷歌复制粘贴电子邮件列表到框(:
"Bob Rob"<bob@company.com>, job@company.com; rob@company.com job@somewhere.com
电子邮件ID可以用,
、;
或换行符分隔。
您可以使用.math()
方法将电子邮件快速解析为一个数组:
inputval.match(/[A-z0-9]+@[A-z0-9]+.[A-z]{2,3}/g)
如果你想把它转换成字符串,你可以添加.join(', ')
或.join('; ')
。正则表达式会简化。有相当多的正则表达式可以用来解析电子邮件,但上面的是一个简化版本。正如下面的评论所指出的,它没有考虑子域或多部分TLD(它也没有考虑电子邮件地址第一部分的+
符号(。替换为符合您需要的正则表达式。
myEmailList=userInput.match(/[a-zA-z0-9_.]+@[a-zA-Z0-9_.]+'.(com|org|whatever)/g);
myEmailListString=myEmailList.join(', ');
或者,若你们想要一组电子邮件地址,只需填写第一行即可。
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- 根据部门用户的选择,接收来自多个电子邮件地址的Wordpress Contactform7查询
- 电子邮件地址验证但创建帐户,即使电子邮件地址无效
- 如何在实时网页中用mailto链接替换电子邮件地址
- 匹配Javascript中的几种不同的电子邮件地址格式
- 使用 Javascript 进行电子邮件地址验证在 ASP.net 中不起作用
- 使用不带正则表达式的jscript验证电子邮件地址
- ng变化不会'除非我输入了有效的电子邮件地址,否则我不会因为输入电子邮件而被解雇
- 使用JavaScript或JQuery验证电子邮件地址
- 如何防止电子邮件地址的css自动连字符
- 如何基于电子邮件地址域重定向到电子邮件登录页面
- 将多个电子邮件表单中的电子邮件发送到多个电子邮件地址
- 将回复电子邮件地址更改为队列's在动态crm 2011中的电子邮件地址
- 使用curl命令向sendgrid添加电子邮件地址
- 有没有办法检测电子邮件地址的假域名?使用Perl、php、javascript
- Regex用于有效和无效的电子邮件地址
- Regex Groups-选择电子邮件地址前的文本
- Angularjs, lexerr Lexer 错误:如何将电子邮件地址(regex)传递给函数
- 什么是最不坏的正则表达式来拒绝绝对无效的电子邮件地址
- 如何从文本中解析/修剪电子邮件地址