在字符串中查找电子邮件
Find e-mails on string
我几天前问了这个问题:
无法获取JSON对象上的特定值
第一个答案非常完美。现在我需要修改这个正则表达式,以便查找电子邮件。问题是我对正则表达式一无所知,我一直在四处寻找,但似乎无法实现。这是代码:
var m=null
, result=JSON.stringify(response)
, re=/"message":"([^"]+)"/g
, messages=[];
while( m=re.exec(result) ) {
messages.push(m[1]);
我的另一个问题解释了所有内容,但基本上,这段代码所做的是获得message":"THIS TEXT"
现在,我想弄清楚该文本是否包含电子邮件。
我已经查看了许多javascript regexp示例,发现它相当令人困惑,所以如果你能给我一点解释(或阅读一些东西),说明它为什么会这样做,我真的很感激。
Regexp您正在寻找的是长而丑陋的。RFC标准中的电子邮件地址定义过于复杂和宽松。请参阅维基百科上的"有效电子邮件地址"部分。但是,您可以使用以下简单的regexp:来检查字符串是否像电子邮件
/^.+@.+'..+$/
Regexper
如果你想验证看起来像电子邮件的任何东西,你可以使用这个:
^.+@.+'..+$
但是,这个正则表达式还允许使用空格和多个@符号。所以,你可以使用这个:
^[^@]+@[^@]+'.[^@]+$
但这将允许在名称和TLD中使用特殊字符,因此,这里有一个简短的正则表达式,可以匹配几乎所有的英文电子邮件(以及非英文电子邮件):
^([a-zA-Z0-9'-_'~'!'$'&'''(')'*'+',;':'=]+)'@(.+)'.([a-zA-Z]{2,36})$
此正则表达式将在a-z
0符号之前一次或多次匹配字符CCD_2、A-Z
、0-9
、-
、_
、~
、!
、$
、&
、'
、(
、)
、*
、+
、,
、;
、:
和=
,将匹配@
符号之后的任何字符(现在几乎所有字符都可以用于新的国际域),并且允许CCD_ 22或CCD_。
有些国际域名中没有英文字符,所以如果你有国际观众,最好用.{2,36}
代替[a-zA-Z]{2,36}
。
以下是Regex#1在regex101.com.上的实时预览
以下是Regex#2在regex101.com.上的实时预览
以下是Regex#3在regex101.com上的实时预览。
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- 使用angularjs验证文本框中的电子邮件
- 使用正则表达式评估电子邮件地址时出现性能问题
- javascript中添加验证电子邮件的问题
- 如何在收到电子邮件时自动调用脚本
- 获取屏幕截图并在电子邮件中发送的按钮
- 将项目履行与高级模板合并,并通过电子邮件发送至Netsuite 2.0
- php&js-将电子邮件添加到输入文本中
- 在MS Dynamics CRM 2013中查找联系人,而不是电子邮件中的帐户
- 在字符串中查找电子邮件
- 在谷歌日历API的events.list的响应中查找日历所有者的电子邮件
- GAS扫描工作表,查找值和发送电子邮件不会做任何事情.思潮
- 正在分析字符串以通过Google Apps脚本在字符串中查找电子邮件
- 用于查找的电子邮件regex验证器替代方案
- Firebase身份验证服务-在不登录的情况下从电子邮件中查找uid
- 创建一个类似于outlook电子邮件/联系人查找的组件
- 使用javascript在字符串中查找电子邮件地址
- 查找页面上的所有电子邮件
- 动态CRM 2016编辑查找电子邮件从外地
- 从电子邮件地址查找用户