我已经编写了下面的正则表达式来进行非常简单的电子邮件验证.我打算发送确认链接.
/.*@[a-z0-9.-]*/i
Run Code Online (Sandbox Code Playgroud)
但是,我想从当前状态增强它,因为像这样的字符串不会产生所需的结果:
test,my.name + test @ gmail-something.co.uk,test
"测试"部分不合需要地包括在匹配中.我没有成功地尝试过单词边界.
谢谢!
可能重复:
如何在php5中验证电子邮件?
我使用以下代码确保注册时提供的电子邮件地址有效.
(!preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email))
Run Code Online (Sandbox Code Playgroud)
我输入了一个标准的电子邮件地址,如
yourname@company.co.uk
它被标记为无效.
任何人都可以帮我解释为什么会这样吗?
在我的代码中添加简单的电子邮件验证,我创建了以下函数:
def isValid(email: String): Boolean = if("""(?=[^\s]+)(?=(\w+)@([\w\.]+))""".r.findFirstIn(email) == None)false else true
Run Code Online (Sandbox Code Playgroud)
这将通过电子邮件喜欢bob@testmymail.com和失败的邮件bobtestmymail.com,但邮件与空格字符滑过,就像bob @testmymail也将返回true.
我可能在这里很傻......
我试图从字符串中获取电子邮件,如:
"*** test@gmail.com&&^ test2@gmail.com((& ";
private static Pattern p = Pattern.compile("(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$)");
Run Code Online (Sandbox Code Playgroud)
上面的代码可以收到一封电子邮件.
我怎么能得到所有?
为了验证电子邮件地址,我们在MailAddress Class上进行转发.但是,根据MailAddress类,这封电子邮件的@bbb..com地址似乎是有效的.
MSDN声明这是有效的电子邮件地址:
MailAddress类支持以下邮件地址格式:
- user @ host的简单地址格式.如果未设置DisplayName,则这是生成的邮件地址格式.
- 标准引用的显示名称格式为"显示名称".如果设置了DisplayName,则这是生成的格式.
- 如果不包括"显示名称"user @ host,则在用户名,主机名周围添加尖括号.
- 如果不包括这些名称,则会在DisplayName周围添加引号以显示名称.
- DisplayName支持Unicode字符.属性.
- 带引号的用户名.例如,"用户名"@host.
- 用户名中的连续点和尾随点.例如,user ... name .. @ host.
- 括号内的域文字.例如, .
- 评论.例如,(评论)"显示名称"(评论)<(评论)用户(评论)@(评论)域(评论)>(评论).传输前删除注释.
取自https://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress%28v=vs.110%29.aspx.
请注意,7 bullet接近此问题,但它表示连续点可以显示在域中不在域中的用户名中.
其他资源如http://isemail.info(http://isemail.info/a@bbb..com)表明这不是有效的电子邮件地址.
你认为应该是正确的行为?这是一个poc.
//C# Example
var emailAddress = @"a@bbb..com";
Func<string,bool> validEmail = (email)=>
{
try
{
var address = new System.Net.Mail.MailAddress(email);
return true;
}catch (Exception ex)
{
return false;
}
};
Assert.IsTrue(validEmail(emailAddress));
//using NUnit.Framework
//O2Ref:nunit.framework.dll
Run Code Online (Sandbox Code Playgroud) 我正在进行表格注册ApplicationUser.在那里,我有Email or phone像Facebook 这样的领域.我DataAnnotation用于模型验证.在Data annotation我获得[EmailAddress]电子邮件验证和[Phone]电话号码验证.但我需要类似的东西[EmailAddressOrPhone].那我怎么能实现呢?
public class RegisterViewModel
{
.....
[Required]
[Display(Name = "Email or Phone")]
public string EmailOrPhone { get; set; }
......
}
Run Code Online (Sandbox Code Playgroud) 有一种方法可以使用TextFormField或 来验证用户 TextField的输入,如果输入不是电子邮件,则拒绝输入。
这是验证电子邮件的正则表达式 - \S+@\S+\.\S+我没有写它.我是正则表达式的新手,并不能很好地理解它们.
我有一些问题:
我正在使用带preg_match功能的php验证电子邮件地址.但我不断收到以下错误
preg_match(): No ending delimiter '^' found
Run Code Online (Sandbox Code Playgroud)
这是我的preg_match模式
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
以来
2009年10月,互联网名称与数字地址分配机构(ICANN)批准在互联网上创建国家代码顶级域名(ccTLD),该域名使用本地语言脚本的IDNA标准.
我们过去只是验证了a-zA-Z.但现在,我想验证一个unicode电子邮件,如中文电子邮件?@?.??或其他语言.如何通过RegExp验证它们?
regex ×6
email ×3
validation ×3
c# ×2
php ×2
asp.net-mvc ×1
flutter ×1
java ×1
scala ×1
unicode ×1