我想知道正则表达式是否能够从以下字符串中提取电子邮件?
以下条件.*@.*与所有字符串匹配.对于某些字符串,我的模式是有效的,但其余部分则不然.
我想匹配所有匹配电子邮件模式的字符串包括所有域名(some-url.com)或(some-url.co.id)
boleh di kirim ke email saya ekoprasetyo.crb@outlook.com tks...
boleh minta kirim ke db.maulana@gmail.com.
dee.wien@yahoo.com. .
deninainggolan@yahoo.co.id Senior Quantity Surveyor
Fajar.rohita@hotmail.com, terimakasih bu Cindy Hartanto
firmansyah1404@gmail.com saya mau dong bu cindy
fransiscajw@gmail.com
Hi Cindy ...pls share the Salary guide to donny_tri_wardono@yahoo.co.id thank a
Run Code Online (Sandbox Code Playgroud)
Amb*_*hak 34
您可以使用正则表达式创建函数以/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/从长文本中提取电子邮件ID:
function extractEmails ( text ){
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/gi);
}
Run Code Online (Sandbox Code Playgroud)
实际操作脚本:运行以查看结果
var text = `boleh di kirim ke email saya ekoprasetyo.crb@outlook.com tks... boleh minta kirim ke db.maulana@gmail.com. dee.wien@yahoo.com. .
deninainggolan@yahoo.co.id Senior Quantity Surveyor
Fajar.rohita@hotmail.com, terimakasih bu Cindy Hartanto
firmansyah1404@gmail.com saya mau dong bu cindy
fransiscajw@gmail.com
Hi Cindy ...pls share the Salary guide to donny_tri_wardono@yahoo.co.id thank a`;
function extractEmails ( text ){
return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)/gi);
}
$("#emails").text(extractEmails(text));Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<p id="emails"></p>Run Code Online (Sandbox Code Playgroud)
[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+为我工作,您可以在这个regex101 保存的 regex上检查结果。
它实际上只是由@符号分隔的相同模式的两倍。
该模式是 1 次或多次出现:
a-z: 任何小写字母A-Z: 任何大写字母0-9: 任何数字-_.: 连字符、下划线或点如果它错过了一些电子邮件,向它添加任何缺失的字符,它应该可以解决问题。
编辑
我一开始没有注意到,但是当转到regex101 链接时,屏幕右上角有一个解释部分,解释正则表达式匹配的内容。
我想补充@Ambrish Pathak的答案,
根据维基百科,电子邮件地址也可以接受+签名
([a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)
Run Code Online (Sandbox Code Playgroud)
会像魅力一样运作