我想在 Inno Setup 脚本中进行基本的字符串验证,以相对确定该字符串是电子邮件地址。我只想看到有一个“@”字符后跟一个“.”字符,并且在这些字符的两侧至少有一个字符。与此正则表达式类似的东西:
[^@]+@.+\.[^\.]
object pascal 中缺少正则表达式和有限的字符串函数让我感到悲伤。反转字符串很简单,找到第一个“.”。和“@”,然后进行一些比较,但没有可用的 Reverse(string) 函数。
我知道我可以从我编写的辅助 DLL 中调用导出函数,但我希望避免这种解决方案。
还有其他建议吗?
一个很好的问题!请允许我提出一个答案...
function ValidateEmail(strEmail : String) : boolean;
var
strTemp : String;
nSpace : Integer;
nAt : Integer;
nDot : Integer;
begin
strEmail := Trim(strEmail);
nSpace := Pos(' ', strEmail);
nAt := Pos('@', strEmail);
strTemp := Copy(strEmail, nAt + 1, Length(strEmail) - nAt + 1);
nDot := Pos('.', strTemp) + nAt;
Result := ((nSpace = 0) and (1 < nAt) and (nAt + 1 < nDot) and (nDot < Length(strEmail)));
end;
如果电子邮件地址中没有空格、有一个“@”后跟一个“.”,并且“@”和“.”两侧至少有一个字符,则此函数返回 true。距离政府工作足够近。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)