兄弟分真多啊,以后你在你的帖子里面直接问就得了,我知道的话我一定会帮你解决的,这样帮你省点分.跟你核对一下要求,等下要洗澡了,明天要上班,可能代码要明天才能写了..
建议这两个问题可以在表单提交时来检查1.
如果没有这个email帐号,在表单提交时检查,并把不存在的使内容被选中,是要这种效果吗?如果要这种效果,我只能编出ie下的js,ff和opera的话不会编写兼容了,对于ff和opera下的Range对象使用我不太会,嘿嘿.....(如果只提示不存在,不需要选种还可以兼容ie,ff和opera.如果要选中的话这种效果我只会ie的...)对于逗号,如果为中文状态下输入的,把它替换为英文状态的怎么样?格式检查的话参照是否存在来做如何?2
这个简单,就一个正则表达时就搞定了,然后正则.exec()

解决方案 »

  1.   

    呵呵,大哥,你太客气咯,这个是你应得的
    1,就是在表单提交的时候,把不存在的选中,最好能把不存在的或者错误的在弹出窗显示出来(126邮箱就是这种效果)
    至于浏览器没有强求(呵呵)
    对于逗号问题主要是为了方便后面的分解(就是第二个问题)格式检查的话参照是否存在来做如何?
    比如:"赵虎" <000004>, 这个格式是对的,但是不希望出现 赵虎<000004>,或者赵虎000004,或者赵虎
    其实这个也是为了后面的分解做准备(呵呵)2,这个能不能用ASP代码进行分解,呵呵
    上面最后两个问题,主要是为这步做准备的
    大哥,等你的好消息咯
      

  2.   

    showbo兄又要洗白白了,楼主就先别打扰他了,哈哈
    他是本版最勤奋和热心的人,我都很佩服他~~~
      

  3.   

    完工...我把注释去掉了,要不字数超过csdn的限制,晕....
    126.asp
    <html>
     <head>
      <meta http-equiv="content-type" content="text/html;charset=gb2312" />
      <title>1</title>
      <style type="text/css">
        .focus{background-color:#AFDBFF}
        div{color:blue}
        body{font-size:10pt}
        div.e{color:red}
      </style>
     </head>
    <body>
       <script type="text/javascript">
       var link=[["张三","[email protected]"],["王五","[email protected]"],["赵六","[email protected]"],["小张","[email protected]"]
       ,["小李","[email protected]"],["张龙","[email protected]"],["赵虎","[email protected]"]];
       var ts=null;
       var addr,email;
       var point=null;
       window.onload=function()
       {
         addr=document.getElementById("addr");
         email=document.getElementById("email");
       }
       function getDivPosition(o)
       {
         if(point==null)
         {
           point=new Object();
           point.x=o.offsetLeft;
           point.y=o.offsetTop
           point.ofH=o.offsetHeight;
           while(o=o.offsetParent)
           {
             point.x+=o.offsetLeft;
             point.y+=o.offsetTop;
           }
         }
         else
         {
           point.ofH=o.offsetHeight;
         }
         addr.style.left=point.x+"px";
         addr.style.top=point.y+point.ofH+"px";
       }
       function getEmail(v)
       {
         //e=e||event;
         //if(e.keyCode==27||e.keyCode==13||e.keyCode==38||e.keyCode==40)
         //  return;
         var vs=v.split(",");  
         v=vs[vs.length-1];
         if(v!="")
         {
           if(/^ +$/g.test(v))
           {
             displayAll();
           }
           else if(/^[a-bA-Z0-9]+$/gi.test(v))
           {
             if(ts!=null)
               clearTimeout(ts);
             ts=setTimeout("displaySearch(1,'"+v.replace(/'/g,'\'')+"')",500);
           }
           else if(/^[\u4E00-\u9FFF]+$/gi.test(v))
           {
             if(ts!=null)
               clearTimeout(ts);
             ts=setTimeout("displaySearch(0,'"+v.replace(/'/g,'\'')+"')",500);
           }
         }
       }
       function displaySearch(type,v)
       {
         var First=true;
         var data="";
         for(var i=0;i<link.length;i++)
         {
             if(link[i][type].indexOf(v)==0)
             {
               if(First)
               {
                 First=false;
                 data+='<div onclick="setTxt(this.innerHTML)" class="focus">"'+link[i][0]+'"&lt;'+link[i][1]+'&gt;</div>';
               }
               else
                 data+='<div onclick="setTxt(this.innerHTML)">"'+link[i][0]+'"&lt;'+link[i][1]+'&gt;</div>';
             }
         }
         if(data!="")
         {
           getDivPosition(email);
           addr.innerHTML=data;
           addr.style.display="";
           addr.focus();
         }
       }
       function displayAll()
       {
         var data="";
         for(var i=0;i<link.length;i++)
         {
           if(i==0)
             data+='<div onclick="setTxt(this.innerHTML)" class="focus">"'+link[i][0]+'"&lt;'+link[i][1]+'&gt;</div>';
           else
             data+='<div onclick="setTxt(this.innerHTML)">"'+link[i][0]+'"&lt;'+link[i][1]+'&gt;</div>';
         }
         if(data!="")
         {
           getDivPosition(email);
           addr.innerHTML=data;
           addr.style.display="";
           addr.focus();
         }
       }
       function setTxt(v)
       {
         v=v.replace("&lt;","<").replace("&gt;",">");
         email.value=email.value.substr(0,email.value.lastIndexOf(",")+1)+v+",";//====================
         if(/opera/gi.test(navigator.userAgent))
         {
           //Opera的话会把"变为&quot;,只好替换回来了.
           email.value=email.value.replace(/&quot;/gi,"\"");
         } 
         addr.style.display="none";
         setTimeout("email.focus()",1);
       }
       document.onkeydown=function(e)
       {
         e=e||event;
         if(e.keyCode==27)//esc键
           addr.style.display="none";
         else
         {
           if(addr.style.display!="none")
           {
             var divs=addr.getElementsByTagName("div");
             for(var i=0;i<divs.length;i++)
             {         
                 if(divs[i].className=="focus")
                 {
                    if(e.keyCode==38)//向上键
                    {
                        var preDiv=divs[i-1];
                        if(preDiv!=null)
                        {
                          divs[i].className="";
                          preDiv.className="focus";
                          return;
                        }
                     }
                     else if(e.keyCode==40)//向下键
                     {
                        var nextDiv=divs[i+1];
                        if(nextDiv!=null)
                        {
                          divs[i].className="";
                          nextDiv.className="focus";
                          return;
                        }
                     }
                     else if(e.keyCode==13)//enter键
                     {
                       setTxt(divs[i].innerHTML);
                       return;
                     }               
                  }
               } //end for        
            }
          }
       }//end document.onkeydown
       
       function validEmail(e)
       {
         if(e.value=="")
         {
           alert("Email不能为空!");
           e.focus();
           return false;
         }
         var errMsg="";
         var errNum=0;
         var style="<style>div{color:red;font-size:12pt;}"
               +"div.err{font-size:9pt}"
               +".err{color:blue;font-size:9pt}"
               +"a{font-size:9pt}</style>";           
         e.value=e.value.replace(/,/g,",");//把中文的,替换为英文状态的,
         var es=e.value.split(",");//分割为组
         var reg=/"([^"]+)"<([^>]+)>/i
         for(var i=0;i<es.length;i++)
         {
           if(/^ *$/g.test(es[i])) continue;
           
           if(!reg.test(es[i]))
           {
              if(errMsg=="")
               errMsg=style;
             errNum++;
             errMsg+="<div>"+errNum+".<span class='err'>"+es[i].replace("<","&lt;").replace(">","&gt;")+"</span>格式不正确!</div>";         
           }
           else if(!checkExists(reg,es[i]))
           {
             if(errMsg=="")
               errMsg=style;
             errNum++;
             errMsg+="<div>"+errNum+".<span class='err'>"+es[i].replace("<","&lt;").replace(">","&gt;")+"</span>在联系人中不存在!</div>";         
           }
         }
         if(errMsg!="")
         {
           errMsg="<div>出现下面的<font color=blue>"+errNum+"</font>个错误<br/></div>"+errMsg;
           errMsg+="<div><a href='#' onclick='self.close();'>关闭</a></div>";
           var t,l;
           t=(screen.availHeight-300)/2;
           l=(screen.availWidth-400)/2;
           var w=window.open("about:blank","Error","menubar=0,width=400,height=200,top="+t+",left="+l+"");
           w.document.open();
           w.document.write(errMsg);
           w.document.close();
           return false;
         }
       }
       function checkExists(reg,v)
       {
         var m=v.match(reg);
         for(var i=0;i<link.length;i++)
         {
           if(link[i][0]==m[1]&&link[i][1]==m[2])
           {
             return true;
           }
         }
         return false;
       }
       </script>
    <br>
       <form name="form1" method="post" action="" onsubmit="return validEmail(this.email)">
          <table width="498" border="0">
         <tr>
           <td width="136">Email: </td>
           <td width="352"><textarea name="email" id="email" tabindex="1" onKeyUp="getEmail(this.value)" autocomplete="off" style="width:400;overflow:visible;word-break:break-all"></textarea></td>
         </tr>
         <tr>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
         </tr>
         <tr>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
         </tr>
         <tr><td align="center" colspan="2"><input type="submit" value="提交" /></td></tr>
       </table>
         <div id="addr" style="display:none;position:absolute; background-color:#eeeeee"></div>
       </form>
       <%
       dim em:em=request.Form("email")&""
       if em<>"" then
         dim reg,ms,m
         set reg=new RegExp
         reg.IgnoreCase=true
         reg.Global=true
         reg.Pattern="""([^""]+)""<([^>]+)>"
         set ms=reg.Execute(em)
         for each m in ms
           response.Write "姓名:"&m.submatches(0)&"<br/>email:"&m.submatches(1)&"<br/><br/>"
         next
       end if
       %>
    </body>
    </html>
      

  4.   

    忘记用标签了,有些代码注释掉了,不需要了
    <html>
     <head>
      <meta http-equiv="content-type" content="text/html;charset=gb2312" />
      <title>1</title>
      <style type="text/css">
        .focus{background-color:#AFDBFF}
        div{color:blue}
        body{font-size:10pt}
        div.e{color:red}
      </style>
     </head>
    <body>
       <script type="text/javascript">
       var link=[["张三","[email protected]"],["王五","[email protected]"],["赵六","[email protected]"],["小张","[email protected]"]
       ,["小李","[email protected]"],["张龙","[email protected]"],["赵虎","[email protected]"]];
       var ts=null;
       var addr,email;
       var point=null;
       window.onload=function()
       {
         addr=document.getElementById("addr");
         email=document.getElementById("email");
       }
       function getDivPosition(o)
       {
         if(point==null)
         {
           point=new Object();
           point.x=o.offsetLeft;
           point.y=o.offsetTop
           point.ofH=o.offsetHeight;
           while(o=o.offsetParent)
           {
             point.x+=o.offsetLeft;
             point.y+=o.offsetTop;
           }
         }
         else
         {
           point.ofH=o.offsetHeight;
         }
         addr.style.left=point.x+"px";
         addr.style.top=point.y+point.ofH+"px";
       }
       function getEmail(v)
       {
         //e=e||event;
         //if(e.keyCode==27||e.keyCode==13||e.keyCode==38||e.keyCode==40)
         //  return;
         var vs=v.split(","); //========   
         v=vs[vs.length-1];//========
         if(v!="")
         {
           if(/^ +$/g.test(v))
           {
             displayAll();
           }
           else if(/^[a-bA-Z0-9]+$/gi.test(v))
           {
             if(ts!=null)
               clearTimeout(ts);
             ts=setTimeout("displaySearch(1,'"+v.replace(/'/g,'\'')+"')",500);
           }
           else if(/^[\u4E00-\u9FFF]+$/gi.test(v))
           {
             if(ts!=null)
               clearTimeout(ts);
             ts=setTimeout("displaySearch(0,'"+v.replace(/'/g,'\'')+"')",500);
           }
         }
       }
       function displaySearch(type,v)
       {
         var First=true;
         var data="";
         for(var i=0;i<link.length;i++)
         {
             if(link[i][type].indexOf(v)==0)
             {
               if(First)
               {
                 First=false;
                 data+='<div onclick="setTxt(this.innerHTML)" class="focus">"'+link[i][0]+'"&lt;'+link[i][1]+'&gt;</div>';
               }
               else
                 data+='<div onclick="setTxt(this.innerHTML)">"'+link[i][0]+'"&lt;'+link[i][1]+'&gt;</div>';
             }
         }
         if(data!="")
         {
           getDivPosition(email);
           addr.innerHTML=data;
           addr.style.display="";
           addr.focus();
         }
       }
       function displayAll()
       {
         var data="";
         for(var i=0;i<link.length;i++)
         {
           if(i==0)
             data+='<div onclick="setTxt(this.innerHTML)" class="focus">"'+link[i][0]+'"&lt;'+link[i][1]+'&gt;</div>';
           else
             data+='<div onclick="setTxt(this.innerHTML)">"'+link[i][0]+'"&lt;'+link[i][1]+'&gt;</div>';
         }
         if(data!="")
         {
           getDivPosition(email);
           addr.innerHTML=data;
           addr.style.display="";
           addr.focus();
         }
       }
       function setTxt(v)
       {
         v=v.replace("&lt;","<").replace("&gt;",">");
         email.value=email.value.substr(0,email.value.lastIndexOf(",")+1)+v+",";
         if(/opera/gi.test(navigator.userAgent))
         {
           //Opera的话会把"变为&quot;,只好替换回来了.
           email.value=email.value.replace(/&quot;/gi,"\"");
         } 
         addr.style.display="none";
         setTimeout("email.focus()",1);
       }
       document.onkeydown=function(e)
       {
         e=e||event;
         if(e.keyCode==27)//esc键
           addr.style.display="none";
         else
         {
           if(addr.style.display!="none")
           {
             var divs=addr.getElementsByTagName("div");
             for(var i=0;i<divs.length;i++)
             {         
                 if(divs[i].className=="focus")
                 {
                    if(e.keyCode==38)
                    {
                        var preDiv=divs[i-1];
                        if(preDiv!=null)
                        {
                          divs[i].className="";
                          preDiv.className="focus";
                          return;
                        }
                     }
                     else if(e.keyCode==40)
                     {
                        var nextDiv=divs[i+1];
                        if(nextDiv!=null)
                        {
                          divs[i].className="";
                          nextDiv.className="focus";
                          return;
                        }
                     }
                     else if(e.keyCode==13)
                     {
                       setTxt(divs[i].innerHTML);
                       return;
                     }               
                  }
               } //end for       
            }
          }
       }//end document.onkeydown
       
       function validEmail(e)
       {
         if(e.value=="")
         {
           alert("Email不能为空!");
           e.focus();
           return false;
         }
         var errMsg="";
         var errNum=0;
         var style="<style>div{color:red;font-size:12pt;}"
               +"div.err{font-size:9pt}"
               +".err{color:blue;font-size:9pt}"
               +"a{font-size:9pt}</style>";           
         e.value=e.value.replace(/,/g,",");//把中文的,替换为英文状态的,
         var es=e.value.split(",");//分割为组
         var reg=/"([^"]+)"<([^>]+)>/i
         for(var i=0;i<es.length;i++)
         {
           if(/^ *$/g.test(es[i])) continue;
           
           if(!reg.test(es[i]))
           {
              if(errMsg=="")
               errMsg=style;
             errNum++;
             errMsg+="<div>"+errNum+".<span class='err'>"+es[i].replace("<","&lt;").replace(">","&gt;")+"</span>格式不正确!</div>";         
           }
           else if(!checkExists(reg,es[i]))
           {
             if(errMsg=="")
               errMsg=style;
             errNum++;
             errMsg+="<div>"+errNum+".<span class='err'>"+es[i].replace("<","&lt;").replace(">","&gt;")+"</span>在联系人中不存在!</div>";         
           }
         }
         if(errMsg!="")
         {
           errMsg="<div>出现下面的<font color=blue>"+errNum+"</font>个错误<br/></div>"+errMsg;
           errMsg+="<div><a href='#' onclick='self.close();'>关闭</a></div>";
           var t,l;
           t=(screen.availHeight-300)/2;
           l=(screen.availWidth-400)/2;
           var w=window.open("about:blank","Error","menubar=0,width=400,height=200,top="+t+",left="+l+"");
           w.document.open();
           w.document.write(errMsg);
           w.document.close();
           return false;
         }
       }
       function checkExists(reg,v)
       {
         var m=v.match(reg);
         for(var i=0;i<link.length;i++)
         {
           if(link[i][0]==m[1]&&link[i][1]==m[2])
           {
             return true;
           }
         }
         return false;
       }
       </script>
    <br>
       <form name="form1" method="post" action="" onsubmit="return validEmail(this.email)">
          <table width="498" border="0">
         <tr>
           <td width="136">Email: </td>
           <td width="352"><textarea name="email" id="email" tabindex="1" onKeyUp="getEmail(this.value)" autocomplete="off" style="width:400;overflow:visible;word-break:break-all"></textarea></td>
         </tr>
         <tr>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
         </tr>
         <tr>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
         </tr>
         <tr><td align="center" colspan="2"><input type="submit" value="提交" /></td></tr>
       </table>
         <div id="addr" style="display:none;position:absolute; background-color:#eeeeee"></div>
       </form>
       <%
       dim em:em=request.Form("email")&""
       if em<>"" then
         dim reg,ms,m
         set reg=new RegExp
         reg.IgnoreCase=true
         reg.Global=true
         reg.Pattern="""([^""]+)""<([^>]+)>"
         set ms=reg.Execute(em)
         for each m in ms
           response.Write "姓名:"&m.submatches(0)&"<br/>email:"&m.submatches(1)&"<br/><br/>"
         next
       end if
       %>
    </body>
    </html>
      

  5.   

    showbo 真是个好人,跟着他趁分.
      

  6.   

    rweqrqwe