如图,我想在点击保存或修改按扭后,自动判别是不是真正的Email信箱地址,如果不是,则发出警告信息!请各位前辈老师们帮忙实现这段代码!谢谢!!!

解决方案 »

  1.   

    //**************** 验证email     true合法
     function   IsVaildEmailAddr(EmailAddr:String):boolean;
      var   
        Number,I:integer;      
        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   
            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            
                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;
     //*****************
      

  2.   

    很不好意思,我的意思不是判断是不是真的电脑信箱,而是判断信箱的格式是不是正确
    比如点击那个添加按扭后,就开始判断 mailedit文本框里的内容, 如果不是"[email protected]"这样的格式,就弹出警告!brightyang大哥的程序代码,我看的稀里糊涂的,能不能详细讲解一下啊?
      

  3.   

    brightyang大哥的代码就是验证输入的是不是正确的EMail格式看不懂???
      

  4.   

    不好意思,我是小菜,哪位大哥大姐,可以帮忙把brightyang大哥的代码加个注解啊?
    泣谢中...
      

  5.   

    //**************** 验证email     true合法 
     function   IsVaildEmailAddr(EmailAddr:String):boolean; 
      var    
        Number,I:integer;       
        TempStr:String;    
      begin    
        TempStr:=EmailAddr;    
        Number:=0;    
        for   I:=1   to   Length(TempStr)   do    
            begin    
                if   (TempStr   [I]='@')   then    
                    INC(Number);//Number存放看输入的字符串有几个@    
            end;    
            if   ((Number   =0)or(Number   >1))   then    
              Result:=False //如果没有@或者有多个那么肯定是无效的Email地址   
            else    
            begin    
              if   ((TempStr   [1]='@')or   (TempStr   [length(TempStr)]='@'))   then    
                Result:=False  //如果@在最开始或者最后也是无效的Email地址
              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   //如果剩余字符中没有. 或者.在最后 或者.在最开始都是无效的email地址
                  else    
                    Result:=True;  //排除以上所有情况,剩下的就都符合一个email的格式,不知我的注释如何,楼主     
                end;      
              end;                     
            end;      
        end; 
     //*****************
      

  6.   

    顶 lys_427 注释加的相当好  o(∩_∩)o...哈哈  楼主应该可以看明白了
      

  7.   

    谢谢各位大哥大姐,谢谢brightyang大哥的代码,谢谢kaikai_kk师父和hys_427大哥的详细注释,谢谢CNDN论坛的各位同仁兄弟姐妹们!!!!唉,太感动,太激动了,都不知道说什么了!!!!