【发布时间】:2011-03-14 03:49:46
【问题描述】:
我编写了一个将电子邮件添加到时事通讯库的函数。在我添加检查已发送电子邮件的有效性之前,它工作得完美无缺。现在每次我收到“错误的电子邮件”作为回报。任何人都可以在这里看到任何错误吗?使用的正则表达式是:
\b[\w\.-]+@[\w\.-]+\.\w{2,4}\b 是 100% 有效的 (http://gskinner.com/RegExr/),但我可能用错了,也可能是一些逻辑错误:
def newsletter_add(request):
if request.method == "POST":
try:
e = NewsletterEmails.objects.get(email = request.POST['email'])
message = _(u"Email is already added.")
type = "error"
except NewsletterEmails.DoesNotExist:
if validateEmail(request.POST['email']):
try:
e = NewsletterEmails(email = request.POST['email'])
except DoesNotExist:
pass
message = _(u"Email added.")
type = "success"
e.save()
else:
message = _(u"Wrong email")
type = "error"
import re
def validateEmail(email):
if len(email) > 6:
if re.match('\b[\w\.-]+@[\w\.-]+\.\w{2,4}\b', email) != None:
return 1
return 0
【问题讨论】:
-
100% 有效?不匹配
foo+bar@example.com,不匹配foo@museum.com,还有更多。 -
100% 有效?您的正则表达式将匹配
a..@..............a。 -
实际上@Kos @Zenadix ...你们俩都错了
\b[\w\.-]+@[\w\.-]+\.\w{2,4}\b正则表达式。我刚刚对其进行了测试,结果与你们所说的相反。
标签: python regex django validation email