电子邮件地址的Lua模式匹配

时间:2015-05-06 17:45:58

标签: email lua lua-patterns

我有以下代码:

var url = "http://www....whereas be";
window.location.href = url;

目前还没有抓住

if not (email:match("[A-Za-z0-9%.]+@[%a%d]+%.[%a%d]+")) then
     print(false)
end

是一个错误。

我想通过将输入限制为 "test@yahoo,ca" or "test@test1.test2,com" - 字符和%a - 数字,我会默认捕获任何标点符号,包括逗号。

但我想我错了。或者还有我还没有看到的其他东西。 第二双眼睛将不胜感激。

2 个答案:

答案 0 :(得分:4)

"test@test1.test2,com"的示例中,模式与test@test1.test2匹配,并且由于以下,而停止。它没有撒谎,它确实匹配,而不是你所期望的。要修复,请使用锚点:

^[A-Za-z0-9%.]+@[%a%d]+%.[%a%d]+$

您可以进一步将其简化为:

^[%w.]+@%w+%.%w+$

其中%w与字母数字字符匹配。

答案 1 :(得分:2)

我很难为Lua找到真正的电子邮件验证功能。

我找不到任何允许电子邮件允许的特殊情况。实际上,电子邮件中可以接受+或引号等内容。

我编写了自己的Lua函数,可以通过电子邮件地址规范中列出的所有测试。

http://ohdoylerules.com/snippets/validate-email-with-lua

我还添加了一堆评论,所以如果你想忽略一些奇怪的验证,只需删除该特定检查的if语句。