【问题标题】:Email address validation using corona sdk使用 corona sdk 验证电子邮件地址
【发布时间】:2014-01-10 09:20:36
【问题描述】:

在我的项目中,用户填写详细信息的表单。在那里,一个文本字段用于输入用户的电子邮件 ID。所以我需要在电晕项目中验证该文本字段中的电子邮件

【问题讨论】:

标签: email lua coronasdk


【解决方案1】:

试试这个正则表达式:

local email = "email@email.com"
if (email:match("[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w%w?%w?")) then
    print("VALID EMAIL")
else
    print("INVALID EMAIL")                
end

【讨论】:

  • 你能解释一下match函数里面写的正则表达式吗
  • 抱歉,这有点复杂。您可以在此处阅读有关正则表达式的更多信息:en.wikipedia.org/wiki/Regular_expression
  • @HariKrishnan,这些不是正则表达式,它们是 Lua 模式。见lua.org/manual/5.2/manual.html#6.4.1
  • 这不起作用...因为如果我们输入例如 dsdasd@dasdas@sa.pl,string.match 将返回我们字符串的一部分,因此它不能是电子邮件。为了使其正常工作,我们需要检查输入的匹配字符串是否与字符串匹配的返回结果相同。然后它将按预期工作。所以这个答案是错误的。
  • @Pontus 我知道它的电子邮件无效,并且上面的功能仍然打印(“VALID EMAIL”),这就是我指出错误的原因。这就是为什么正如我所说的代码需要修改才能真正起作用。 local email = "email@email.com" local matchEmail = (email:match("[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w%w?%w?")) if matchEmail and matchEmail == email then print("VALID EMAIL") else print("INVALID EMAIL") end
【解决方案2】:

使用正则表达式模式检查电子邮件。

使用这个“[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w% w?%w?”

【讨论】:

  • 正则表达式还可以,但是这个很重,而且网络上还有一些例子,更通用。
  • 这个答案存在的原因尚不清楚,它使用与接受的答案相同的表达式并且没有添加任何其他信息。
【解决方案3】:

试试这个:

本地模式 = "[%w][%p][@][%w]+[.][%w.]+[^.]+"

返回值 ~= nil 和 #value >= 1 和 #value

例如:email@email.com email@email.com.br

【讨论】:

    猜你喜欢
    • 2014-06-12
    • 1970-01-01
    • 2021-10-20
    • 2018-12-12
    • 1970-01-01
    • 2018-03-13
    • 2011-09-02
    • 2013-02-20
    • 2014-03-12
    相关资源
    最近更新 更多