郑重声明:本文是笔者根据个人理解所写,错误难免,欢迎拍砖!
可以任意转载、修改,转载时是否标明出处,随君而定!
合法的email地址格式如下:
1. 首字符必须用字母,而且其它的字符只能用26个大小写字母、0~9及_-.@符号
2. 必须包含一个并且只有一个符号“@”
3. @后必须包含至少一个至多三个符号“.”
4. 第一个字符不得是“@”或者“.”(第一步已检查过了)
5. 不允许出现“@.”或者.@
6. 结尾不得是字符“@”或者“.”
具体代码实现:
1 function isRightEmail(str) 2 if string.len(str or "") < 6 then return false end 3 local b,e = string.find(str or "", '@') 4 local bstr = "" 5 local estr = "" 6 if b then 7 bstr = string.sub(str, 1, b-1) 8 estr = string.sub(str, e+1, -1) 9 else 10 return false 11 end 12 13 -- check the string before '@' 14 local p1,p2 = string.find(bstr, "[%w_]+") 15 if (p1 ~= 1) or (p2 ~= string.len(bstr)) then return false end 16 17 -- check the string after '@' 18 if string.find(estr, "^[%.]+") then return false end 19 if string.find(estr, "%.[%.]+") then return false end 20 if string.find(estr, "@") then return false end 21 if string.find(estr, "[%.]+$") then return false end 22 23 _,count = string.gsub(estr, "%.", "") 24 if (count < 1 ) or (count > 3) then 25 return false 26 end 27 28 return true 29 end