//Email验证
function TDeptCaptionFrm.EMailAddCheck(EmailAdd: string; var Errorcode: string): Boolean;
function CheckAt(s: string): integer;
var
num, t: integer;
begin
num := 0;
t := pos('@', s);
while t <> 0 do
begin
inc(num);
s := copy(s, t + 1, length(s) - t);
t := pos('@', s);
end;
result := num;
end;
var
i, j: integer;
str: string;
begin
i := pos('@', EmailAdd);
str := Copy(EmailAdd, i + 1, length(EmailAdd) - i);
j := pos('.', str);
result := false;
if i = 0 then
Errorcode := '地址串中缺少"@"'
else if i = 1 then
Errorcode := '第一位是"@",即缺少用户名'
else if i = Length(EmailAdd) then
Errorcode := '最后一位是"@",即缺少服务器名'
else if j = 0 then
Errorcode := '服务器名中缺少"."'
else if (j = 1) or (j = length(str)) then
Errorcode := '用户名第一位或最后一位是"."'
else if CheckAt(EmailAdd) > 1 then
Errorcode := '有多个"@"'
else
result := true;
end;
//手机号验证
function TDeptCaptionFrm.IsMobileNumber(num: string): boolean;
begin
Result := False;
if length(trim(num)) <> 11 then
Exit;
if ((copy(num, 1, 2) <> '13') and (copy(num, 1, 2) <> '15')
and (copy(num, 1, 2) <> '18') and (copy(num, 1, 2) <> '17')) then
Exit;
try
StrToInt(copy(num, 3, 9));
Result := True;
except
end;
end;
//座机号验证
function TDeptCaptionFrm.isTelNo(sValue: string): Boolean;
var
i,m,n: Integer;
sBegin,sEnd: string;
sList: TStringList;
begin
Result := False;
m := Pos('-',sValue);
if m = 0 then Exit;
sBegin := Copy(sValue,1,m-1);
sEnd := Copy(sValue,m+1,Length(sValue)-m);
if Length(sBegin) > 5 then Exit;
if Length(sEnd) > 8 then Exit;
//判断纯数字
for i := 0 to Length(sBegin)-1 do
begin
if not (sBegin[i+1] in ['0'..'9']) then
Exit;
end;
for i := 0 to Length(sEnd)-1 do
begin
if not (sEnd[i+1] in ['0'..'9']) then
Exit;
end;
sList := TStringList.Create;
try
sList.Add('010');
sList.Add('020');
sList.Add('021');
sList.Add('022');
sList.Add('023');
sList.Add('024');
sList.Add('025');
sList.Add('027');
sList.Add('028');
sList.Add('029');
sList.Add('0310');
sList.Add('0311');
sList.Add('0312');
sList.Add('0313');
sList.Add('0314');
sList.Add('0315');
sList.Add('0316');
sList.Add('0317');
sList.Add('0318');
sList.Add('0319');
sList.Add('0335');
sList.Add('0349');
sList.Add('0350');
sList.Add('0351');
sList.Add('0352');
sList.Add('0353');
sList.Add('0354');
sList.Add('0355');
sList.Add('0356');
sList.Add('0357');
sList.Add('0358');
sList.Add('0359');
sList.Add('0370');
sList.Add('0371');
sList.Add('0372');
sList.Add('0373');
sList.Add('0374');
sList.Add('0375');
sList.Add('0376');
sList.Add('0377');
sList.Add('0378');
sList.Add('0379');
sList.Add('0391');
sList.Add('0392');
sList.Add('0393');
sList.Add('0394');
sList.Add('0395');
sList.Add('0396');
sList.Add('0397');
sList.Add('0398');
sList.Add('0410');
sList.Add('0411');
sList.Add('0412');
sList.Add('0413');
sList.Add('0414');
sList.Add('0415');
sList.Add('0416');
sList.Add('0417');
sList.Add('0418');
sList.Add('0419');
sList.Add('0421');
sList.Add('0423');
sList.Add('0427');
sList.Add('0429');
sList.Add('0431');
sList.Add('0432');
sList.Add('0433');
sList.Add('0434');
sList.Add('0435');
sList.Add('0436');
sList.Add('0437');
sList.Add('0438');
sList.Add('0439');
sList.Add('0440');
sList.Add('0451');
sList.Add('0452');
sList.Add('0453');
sList.Add('0454');
sList.Add('0455');
sList.Add('0456');
sList.Add('0457');
sList.Add('0458');
sList.Add('0459');
sList.Add('0464');
sList.Add('0467');
sList.Add('0468');
sList.Add('0469');
sList.Add('0470');
sList.Add('0471');
sList.Add('0472');
sList.Add('0473');
sList.Add('0474');
sList.Add('0475');
sList.Add('0476');
sList.Add('0477');
sList.Add('0478');
sList.Add('0479');
sList.Add('0482');
sList.Add('0483');
sList.Add('0510');
sList.Add('0511');
sList.Add('0512');
sList.Add('0513');
sList.Add('0514');
sList.Add('0515');
sList.Add('0516');
sList.Add('0517');
sList.Add('0518');
sList.Add('0519');
sList.Add('0520');
sList.Add('0523');
sList.Add('0527');
sList.Add('0530');
sList.Add('0531');
sList.Add('0532');
sList.Add('0533');
sList.Add('0534');
sList.Add('0535');
sList.Add('0536');
sList.Add('0537');
sList.Add('0538');
sList.Add('0539');
sList.Add('0543');
sList.Add('0546');
sList.Add('0550');
sList.Add('0551');
sList.Add('0552');
sList.Add('0553');
sList.Add('0554');
sList.Add('0555');
sList.Add('0556');
sList.Add('0557');
sList.Add('0558');
sList.Add('0559');
sList.Add('0561');
sList.Add('0562');
sList.Add('0563');
sList.Add('0564');
sList.Add('0565');
sList.Add('0566');
sList.Add('0570');
sList.Add('0571');
sList.Add('0572');
sList.Add('0573');
sList.Add('0574');
sList.Add('0575');
sList.Add('0576');
sList.Add('0577');
sList.Add('0578');
sList.Add('0579');
sList.Add('0580');
sList.Add('0591');
sList.Add('0592');
sList.Add('0593');
sList.Add('0594');
sList.Add('0595');
sList.Add('0596');
sList.Add('0597');
sList.Add('0598');
sList.Add('0599');
sList.Add('0631');
sList.Add('0632');
sList.Add('0633');
sList.Add('0634');
sList.Add('0635');
sList.Add('0660');
sList.Add('0662');
sList.Add('0663');
sList.Add('0668');
sList.Add('0691');
sList.Add('0692');
sList.Add('0701');
sList.Add('0710');
sList.Add('0711');
sList.Add('0712');
sList.Add('0713');
sList.Add('0714');
sList.Add('0715');
sList.Add('0716');
sList.Add('0717');
sList.Add('0718');
sList.Add('0719');
sList.Add('0722');
sList.Add('0724');
sList.Add('0728');
sList.Add('0730');
sList.Add('0731');
sList.Add('0732');
sList.Add('0733');
sList.Add('0734');
sList.Add('0735');
sList.Add('0736');
sList.Add('0737');
sList.Add('0738');
sList.Add('0739');
sList.Add('0743');
sList.Add('0744');
sList.Add('0745');
sList.Add('0746');
sList.Add('0750');
sList.Add('0751');
sList.Add('0752');
sList.Add('0753');
sList.Add('0754');
sList.Add('0755');
sList.Add('0756');
sList.Add('0757');
sList.Add('0758');
sList.Add('0759');
sList.Add('0760');
sList.Add('0762');
sList.Add('0763');
sList.Add('0766');
sList.Add('0768');
sList.Add('0769');
sList.Add('0770');
sList.Add('0771');
sList.Add('0772');
sList.Add('0773');
sList.Add('0774');
sList.Add('0775');
sList.Add('0776');
sList.Add('0777');
sList.Add('0778');
sList.Add('0779');
sList.Add('0790');
sList.Add('0791');
sList.Add('0792');
sList.Add('0793');
sList.Add('0794');
sList.Add('0795');
sList.Add('0796');
sList.Add('0797');
sList.Add('0798');
sList.Add('0799');
sList.Add('08018');
sList.Add('08059');
sList.Add('0812');
sList.Add('0813');
sList.Add('0816');
sList.Add('0817');
sList.Add('0818');
sList.Add('0825');
sList.Add('0826');
sList.Add('0827');
sList.Add('0830');
sList.Add('0831');
sList.Add('0832');
sList.Add('0833');
sList.Add('0834');
sList.Add('0835');
sList.Add('0836');
sList.Add('0837');
sList.Add('0838');
sList.Add('0839');
sList.Add('0851');
sList.Add('0852');
sList.Add('0853');
sList.Add('0854');
sList.Add('0855');
sList.Add('0856');
sList.Add('0857');
sList.Add('0858');
sList.Add('0859');
sList.Add('0870');
sList.Add('0871');
sList.Add('0872');
sList.Add('0873');
sList.Add('0874');
sList.Add('0875');
sList.Add('0876');
sList.Add('0877');
sList.Add('0878');
sList.Add('0879');
sList.Add('0883');
sList.Add('0886');
sList.Add('0887');
sList.Add('0888');
sList.Add('0890');
sList.Add('0891');
sList.Add('0892');
sList.Add('0893');
sList.Add('0894');
sList.Add('0895');
sList.Add('0896');
sList.Add('0897');
sList.Add('0898');
sList.Add('0899');
sList.Add('0901');
sList.Add('0902');
sList.Add('0903');
sList.Add('0906');
sList.Add('0908');
sList.Add('0909');
sList.Add('0911');
sList.Add('0912');
sList.Add('0913');
sList.Add('0914');
sList.Add('0915');
sList.Add('0916');
sList.Add('0917');
sList.Add('0919');
sList.Add('0930');
sList.Add('0931');
sList.Add('0932');
sList.Add('0933');
sList.Add('0934');
sList.Add('0935');
sList.Add('0936');
sList.Add('0937');
sList.Add('0938');
sList.Add('0939');
sList.Add('0941');
sList.Add('0943');
sList.Add('0951');
sList.Add('0952');
sList.Add('0953');
sList.Add('0954');
sList.Add('0955');
sList.Add('0970');
sList.Add('0971');
sList.Add('0972');
sList.Add('0973');
sList.Add('0974');
sList.Add('0975');
sList.Add('0976');
sList.Add('0977');
sList.Add('0979');
sList.Add('0990');
sList.Add('0991');
sList.Add('0992');
sList.Add('0993');
sList.Add('0994');
sList.Add('0995');
sList.Add('0996');
sList.Add('0997');
sList.Add('0998');
sList.Add('0999');
sList.Add('00852');
sList.Add('00853');
sList.Add('00886');
if sList.IndexOf(sBegin)=-1 then Exit;
Result := True;
finally
FreeAndNil(sList);
end;
end;