如果有一个可以处理这个问题的正确的正则表达式模式,那么从一个来自电子邮件表单"To"行的字符串中提取电子邮件地址是什么,它允许用逗号分隔地址",",分号";" ,空格或三者的任意组合.正则表达式还必须能够忽略"噪声"文本,例如,如果地址包含在"<"和">"字符中,或者在电子邮件地址旁边有实际名称.例如,从To字段中的此字符串:
"Joe Smith" <jsmith@example.com>, kjones@aol.com; someoneelse@nowhere.com mjane@gmail.com
Run Code Online (Sandbox Code Playgroud)
该模式应该能够返回以下匹配:jsmith @ example,kjones @ aol.com,someoneelse @ nowhere.com,mjane @ gmail.com
我正在使用PHP,所以如果这不能在单个正则表达式中完成,那么我肯定会对其他基于PHP的解决方案开放.
谢谢
有没有办法可靠地从用户输入一个唯一的电子邮件地址?问题是诸如GMail之类的服务允许你在地址中放置一个句点并将其删除,而对于其他服务则不是这样.
GMail的:
chad.moran@gmail.com
c..hadmoran@gmail.com
c.h.a.d.m.o.r.a.n@gmail.com
Run Code Online (Sandbox Code Playgroud)
所有这些都是一样的
其他服务:
chad.moran@---.com
c..hadmoran@---.com
Run Code Online (Sandbox Code Playgroud)
这些都是独特的.
除了专门针对GMail的特殊逻辑之外,还有更好的方法吗?
我意识到有大量的正则表达式电子邮件验证,但我似乎找不到符合RFC 2822标准的电子邮件验证.
我找到的那些继续让垃圾像... @ abc.com通过.
如果其中一个问题的答案已经符合RFC 2822(但没有注释,那么请原谅),请原谅我.
我希望每个用户都使用唯一的电子邮件地址进行注册。然而,像 GMail 这样的一些电子邮件地址允许您添加一个 + 后缀,该后缀可用于将多个帐户注册到一个网站,但它全部转到一个电子邮件地址,例如
实际上,他们可以拥有任意数量的电子邮件地址。这是一个问题,因为我的网站将其视为 5 个独立的电子邮件地址,但 gmail 将其视为一个电子邮件地址。
我想阻止任何带有“+”的电子邮件地址,但我不想阻止任何有效的电子邮件地址。什么是标准做法?
我正在处理2个棘手的UX JQuery问题.我正在使用JQuery克隆2个表单变量.如何索引,识别它们,以便我可以使用此ID标记它们.例如,如果我从选择框中选择3,我应该获得3行形式,并且在每行的左侧应该以数字开始1. form,2.form,3 form开头.
第二个问题我想要验证服务员[]对确认者[].我如何在克隆的HTML代码中执行此操作.
这是我的JSFiddle http://jsfiddle.net/tGprH/5/
这是我的HTML代码:
<select name="select" id="select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<br/>
<p>Email address, Confirm Email Address</p>
#1 <input type="text" name="attendant[]"/>
<input type="text" name="confirmattendant[]"/>
<br/>
<div id="container">
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的JQuery
$("select").change(function() {
var select = parseInt($('#select').val() , 10);
var $clone = '<input type="text" name="attendant[]" /><input type="text" name="confirmattendant[]" /><br/>';
console.log($clone);
var html = '';
for(var i = 1;i< select ; i++){
html += $clone;
}
$('#container').empty().html(html);
}).change();
Run Code Online (Sandbox Code Playgroud) 
表格代码:
<form class="form" name ="custRegistration" id="custRegistration" onsubmit="return submitAlbum(this)" action="download.jsp" method="post" >
<p class="email">
<label for="budget">Expected Budget :</label>
<input type="text" name="budget" id="budget"/>
</p>
<p class="submit">
<label for="download" id="freetrail">Download 30 day free trial</label>
<input type="submit" value="Submit" />
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
我想验证带有扩展名的电子邮件ID,在上面的图像中检查并使用javascript阻止其余的电子邮件ID扩展.任何帮助将不胜感激?
我正在使用下面的正则表达式来验证电子邮件地址。
/^\w+([\.-]?\w+)*@\w+([\.-]?w+)*(\.\w{2,3})+$/
Run Code Online (Sandbox Code Playgroud)
JavaScript代码:
var email = 'myname@company.com';
var pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?w+)*(\.\w{2,3})+$/;
if(pattern.test(email)){
return true;
}
Run Code Online (Sandbox Code Playgroud)
当我提供以下无效电子邮件时,正则表达式会很快进行评估:
aseflj#$kajsdfklasjdfklasjdfklasdfjklasdjfaklsdfjaklsdjfaklsfaksdjfkasdasdklfjaskldfjjdkfaklsdfjlak@company.com
Run Code Online (Sandbox Code Playgroud)
(我#$在名称中间添加了)
但是,当我尝试评估此电子邮件时,它花费了太多时间,并且浏览器挂起。
asefljkajsdfklasjdfklasjdfklasdfjklasdjfaklsdfjaklsdjfaklsfaksdjfkasdasdklfjaskldfjjdkfaklsdfjlak@company.com1
Run Code Online (Sandbox Code Playgroud)
(我最后补充com1)
我确定正则表达式是正确的,但不确定为什么要花这么多时间来评估第二个示例。如果我提供较短的电子邮件,它将很快得到评估。请参阅以下示例
dfjjdkfaklsdfjlak@company.com1
Run Code Online (Sandbox Code Playgroud)
请帮助我解决性能问题
我正在尝试使用 telnet 和 php 进行邮件验证。整个过程在终端中很好,但是当我使用 php 时shell_exec(),它只能运行到 Telnet 连接命令。连接 telnet 后,其余的 telnet 特定命令将不再起作用。
是否有其他方法需要我们使用 php 执行 telnet?
更新:我正在尝试复制本教程。
这是我的代码
public function mailtest(Request $request){
//Taking input email
$email = $request->input("email");
$divide = explode("@", $email);
//Find out the Domain
$server = $divide[1];
$response = shell_exec("nslookup -q=mx $server");
//Response of the nslookup
print_r($response);
$mailServerList = explode(PHP_EOL, $response);
$line = $mailServerList[4];
$serverArr = preg_split('/\s+/', $line);
$n = sizeof($serverArr);
$mailServer = $serverArr[$n-1];
//Printing out the mail server out of the …Run Code Online (Sandbox Code Playgroud) 我想检查电子邮件地址是否有效。
如何使用正则表达式在 VB 中验证电子邮件地址?
([\w-+]+(?:\.[\w-+]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7})
Run Code Online (Sandbox Code Playgroud) 在验证电子邮件地址时,我尝试使用以下两个EmailAddressAttribute类System.ComponentModel.DataAnnotations:
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)
和MailAddress类从System.Net.Mail做:
bool IsValidEmail(string email)
{
try {
var addr = new System.Net.Mail.MailAddress(email);
return addr.Address == email;
}
catch {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
按照C# 代码中的建议验证电子邮件地址。这两种方法原则上都有效,它们会捕获无效的电子邮件地址,例如user@,不符合格式的user@host。
我的问题是这两种方法都没有检测到用户字段中的无效字符,例如æ, ø, or å (e.g. åge@gmail.com). 为什么这些字符不返回验证错误有什么原因吗?是否有人对如何在用户字段中合并无效字符的验证有一个优雅的解决方案?
email-validation ×10
email ×5
regex ×5
c# ×3
javascript ×3
.net ×2
jquery ×2
php ×2
asp.net ×1
email-client ×1
networking ×1
rfc2822 ×1
shell-exec ×1
telnet ×1
validation ×1
vb.net ×1