unit mainunit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function IsVaildEmailAddr(EmailAddr:String):boolean;
var
Number,I:integer; //Number用于给字符'@'计数
TempStr:String;
begin
TempStr:=EmailAddr;
Number:=0;
for I:=1 to Length(TempStr) do
begin
if (TempStr [I]='@') then
INC(Number);
end;
if ((Number =0)or(Number >1)) then
Result:=False//如果不含有字符'@',或者其个数大于1,则不合法
else
begin
if ((TempStr [1]='@')or (TempStr [length(TempStr)]='@')) then
Result:=False//如果字符'@'的位置在字符串开头或者末尾,则不合法
else
begin
I:=pos('@',TempStr);//获取字符'@'在字符串当中的位置
delete(TempStr,1,I);//获取字符串中字符'@'后面的剩余子串
if (Length(TempStr)<3) then
Result:=False //如果剩余子串的长度小于3,则不合法
else
begin
if ((pos('.',TempStr)=0)or(pos('.',TempStr)=length(TempStr))
or (pos('.',TempStr)=1))then
Result:=False//如果剩余的子串当中不含有字符'.',或者其位置在//子串的开头或者末尾,则不合法
else
Result:=True; //以上的判断都通过,则表示地址字符串为合法
end;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text<>'')then
begin
if IsVaildEmailAddr(Edit1.Text) then
ShowMessage('您输入的电子邮件地址格式合法!')
else
ShowMessage('您输入的电子邮件地址格式不合法!');
end;
end;
end.