检测EMAIL地址的完整性.(100分)

  • 主题发起人 主题发起人 hwy
  • 开始时间 开始时间
H

hwy

Unregistered / Unconfirmed
GUEST, unregistred user!
那位有没有检测EMAIL地址完整性的代码?
谢了。
 
function IsEMail(EMail: String): Boolean;
var
s: String;
ETpos: Integer;
begin
ETpos:= pos('@',EMail);
if ETpos > 1 then
begin
s:= copy(EMail, ETpos + 1, Length(EMail)-ETpos);
if (pos('.',s) > 1) then
Result:= true
else Result:= false;
end
else
Result:= false;
end;

if isemail(txtemail.Text)=false then
begin
MessageBox(Handle, '邮箱地址不正确,请正确填写!', '错误', MB_ICONHAND);
txtemail.SetFocus;
exit;
end;
 
function judge(email:string):integer; //0:正确 1:错误
var
ss:string;
cc,dd:integer;
begin
ss:=email;
cc:=0;
dd:=0;
if length(trim(ss))=0 then
begin
result:=1;
exit;
end;
if copy(ss,1,1)='@' then
begin
result:=1;
exit;
end;
if copy(ss,1,1)='.' then
begin
result:=1;
exit;
end;
if pos('@.',ss)>0 then
begin
result:=1;
exit;
end;
if pos('@@',ss)>0 then
begin
result:=1;
exit;
end;
if pos('..',ss)>0 then
begin
result:=1;
exit;
end;
if pos('.@',ss)>0 then
begin
result:=1;
exit;
end;
if pos('@',ss)<=0 then
begin
result:=1;
exit;
end;
if pos('@',ss)>0 then
begin
ss:=copy(ss,pos('@',ss)+1,length(ss));
cc:=1;
end;
if (pos('@',ss)>0)and(cc=1) then
begin
result:=1;
exit;
end;
ss:=email;
if pos('.',ss)<=0 then
begin
result:=1;
exit;
end;
if pos('.',ss)>0 then
begin
ss:=copy(ss,pos('.',ss)+1,length(ss));
dd:=1;
end;
if (pos('.',ss)>0)and(dd=1) then
begin
result:=1;
exit;
end;
ss:=email;
if (copy(ss,pos('.',ss)+1,3)<>'com')and(copy(ss,pos('.',ss)+1,3)<>'net') then
begin
result:=1;
exit;
end;
result:=0;
end;
 
检查要点:
1.含有@字符,并且该字符不能为第1个字符
2.含有.字符,并且该字符要在@字符的位置之后+1的位置,并且.不能为最后一个字符.

 
用正則表達式。
去找一下,有現成的寫法的。
 
有没有正則表達式的?
 
后退
顶部