多年来,我慢慢开发了一个正则表达式,可以正确验证MOST电子邮件地址,假设他们不使用IP地址作为服务器部分.
我在几个PHP程序中使用它,它大部分时间都可以工作.但是,我不时会遇到使用它的网站遇到问题的人,我最终不得不进行一些调整(最近我意识到我不允许使用4字符TLD).
验证电子邮件的最佳正则表达式是什么?
我已经看到了几个使用函数的解决方案,这些函数使用了几个较短的表达式,但我宁愿在一个简单的函数中使用一个长复杂表达式,而不是在一个更复杂的函数中使用几个短表达式.
此代码始终发出警报"null",这意味着该字符串与表达式不匹配.
var pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$";
function isEmailAddress(str) {
str = "azamsharp@gmail.com";
alert(str.match(pattern));
return str.match(pattern);
}
Run Code Online (Sandbox Code Playgroud) 当用户在我的网站上创建一个帐户时,我想让电子邮件的服务器验证不接受每个输入.
我将发送确认信息,以便进行握手验证.
我正在寻找简单的东西,而不是最好的东西,但不是太简单,不能验证任何东西.我不知道限制必须在哪里,因为任何正则表达式都不会执行正确的验证,因为无法使用正则表达式执行此操作.
我试图限制正则表达式固有的sintax和视觉复杂性,因为在这种情况下任何都是正确的.
我可以使用什么正则表达式来做到这一点?
我有以下正则表达式与电子邮件地址格式匹配:
^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$
Run Code Online (Sandbox Code Playgroud)
这用于使用JavaScript进行表单验证.但是,这是一个可选字段.因此,如何更改此正则表达式以匹配电子邮件地址格式或空字符串?
从我有限的正则表达式知识,我认为\b匹配一个空字符串,并|意味着"或",所以我尝试做以下,但它不起作用:
^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$|\b
Run Code Online (Sandbox Code Playgroud) 数据导入是从访问数据库完成的,电子邮件地址字段没有验证.有没有人有一个可以返回无效电子邮件地址列表的sql脚本(缺少@等).
谢谢!
有许多的电子邮件正则表达式的问题突然出现了这里,我老老实实困惑,为什么人们在使用这些疯狂钝匹配的表达,而不是一个非常简单的解析器,拆分电子邮件成名称和域的令牌,然后验证那些反对名称允许的有效字符(此部分无法进一步检查)和域名的有效字符(我想您可以添加对所有世界TLD的检查,然后为国家/地区添加另一级别的二级域名用这样的(即com.uk)).
真正的问题是tlds和slds不断变化(与普遍看法相反),因此如果您计划在根名称服务器发送更改时进行所有这些高级别检查,则必须不断更新正则表达式.
为什么没有一个模块可以简单地验证从数据库或平面文件中提取的域,并可选择检查DNS是否匹配记录?
我在这里很认真,为什么每个人都如此热衷于为此发明完美的正则表达式?它似乎不是解决问题的合适方法......
说服我不仅可以在regexp中做(并满足每个人),但它是一个比自定义解析器/验证器更好的解决方案.
-亚当
我见过很多例子,有很多'不,你错过了什么'评论.匹配电子邮件地址的正确方法是什么?
出于Sanity的缘故,只有完全限定的域名,不允许使用@localhost.(或两种方式)
必须允许子域名(issac@deptartment.company.museum)
有谁知道Ruby中的正则表达式是验证电子邮件地址是否采用适当的RFC 2822电子邮件格式?
我想做的是:
string.match(RFC_2822_REGEX)
Run Code Online (Sandbox Code Playgroud)
其中"RFC_2822_REGEX"是正则表达式,用于验证我的字符串是否为有效的RFC 2882格式.
如您所知,这是我们验证电子邮件地址的方式:
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ …Run Code Online (Sandbox Code Playgroud) regex ×9
email ×5
validation ×3
javascript ×2
c# ×1
parsing ×1
perl ×1
ruby ×1
sql ×1
string ×1