Javascript Regex获得全字电子邮件
我很难尝试使用正则表达式从字符串中进行匹配以仅获取电子邮件,字符串如下:“您好,我们已向发送了一封电子邮件。”***foo@hotmail.com检查它“ 我想要只回来的火柴***foor@hotmail.com我试过用a作为字符串:Javascript Regex获得全字电子邮件,javascript,regex,Javascript,Regex,我很难尝试使用正则表达式从字符串中进行匹配以仅获取电子邮件,字符串如下:“您好,我们已向发送了一封电子邮件。”***foo@hotmail.com检查它“ 我想要只回来的火柴***foor@hotmail.com我试过用a作为字符串: a.match(/\b(?=\w*[@*.])\w+\b/g) //expected ***foor@hotmail.com 但这只会返回[foo][hotmail],甚至不会返回.com 你能帮我吗 提前谢谢!您可以尝试使用类似^.+(.+@.+).*$的re
a.match(/\b(?=\w*[@*.])\w+\b/g)
//expected ***foor@hotmail.com
但这只会返回[foo][hotmail],甚至不会返回.com
你能帮我吗
提前谢谢!您可以尝试使用类似
^.+(.+@.+).*$
的regexpr。
在浏览器的JS控制台中,您可以对其进行测试:
编辑
const text = "Hello we have sent an email to ***foo@hotmail.com check it"
const result = text.match(/^.+ (.+@[^ ]+) .*$/)
// returns ["Hello we have sent an email to ***foo@hotmail.com check it",
"***foo@hotmail.com", index: 0, input: "Hello we have sent an email to ***foo@hotmail.com check it", groups: undefined]
如您所见,result[1]
包含所需的邮件地址”***foo@hotmail.com“
你也可以用测试它。你得到foo和hotmail,因为你只是在断言一个点的存在,并且
@
使用正向前瞻(?=
但匹配部分仅使用与点不匹配的\w
或@
我可以知道对我的答案进行向下投票的原因吗?但它不包含所需的地址。不仅是地址,也就是说-你显示自己结果是”***foo@hotmail.com检查“
这比电子邮件本身更重要。可能是我不理解这个问题:您应该获得什么样的设计输出?问题表明//预期***foor@hotmail.com
,因此,我想使用一个与完整电子邮件地址匹配的regexpr…您给出的示例匹配并返回”***foo@hotmail.com检查“
作为输出。您甚至自己这样说“正如您所看到的,结果[1]
包含所需的邮件地址”***foo@hotmail.comcheck”-所需的输出只是电子邮件,因此不应存在check“。uuuuuuuuuuh!复制和粘贴错误…我从编辑器复制了以前版本的regexpr:-(…感谢您的关注!我编辑了我的答案,提供了正确的regexpr。。。