我有以下代码:
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
- 数字,我会默认捕获任何标点符号,包括逗号。
但我想我错了。或者还有我还没有看到的其他东西。 第二双眼睛将不胜感激。
答案 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语句。