兄弟分真多啊,以后你在你的帖子里面直接问就得了,我知道的话我一定会帮你解决的,这样帮你省点分.跟你核对一下要求,等下要洗澡了,明天要上班,可能代码要明天才能写了..
建议这两个问题可以在表单提交时来检查1.
如果没有这个email帐号,在表单提交时检查,并把不存在的使内容被选中,是要这种效果吗?如果要这种效果,我只能编出ie下的js,ff和opera的话不会编写兼容了,对于ff和opera下的Range对象使用我不太会,嘿嘿.....(如果只提示不存在,不需要选种还可以兼容ie,ff和opera.如果要选中的话这种效果我只会ie的...)对于逗号,如果为中文状态下输入的,把它替换为英文状态的怎么样?格式检查的话参照是否存在来做如何?2
这个简单,就一个正则表达时就搞定了,然后正则.exec()
建议这两个问题可以在表单提交时来检查1.
如果没有这个email帐号,在表单提交时检查,并把不存在的使内容被选中,是要这种效果吗?如果要这种效果,我只能编出ie下的js,ff和opera的话不会编写兼容了,对于ff和opera下的Range对象使用我不太会,嘿嘿.....(如果只提示不存在,不需要选种还可以兼容ie,ff和opera.如果要选中的话这种效果我只会ie的...)对于逗号,如果为中文状态下输入的,把它替换为英文状态的怎么样?格式检查的话参照是否存在来做如何?2
这个简单,就一个正则表达时就搞定了,然后正则.exec()
1,就是在表单提交的时候,把不存在的选中,最好能把不存在的或者错误的在弹出窗显示出来(126邮箱就是这种效果)
至于浏览器没有强求(呵呵)
对于逗号问题主要是为了方便后面的分解(就是第二个问题)格式检查的话参照是否存在来做如何?
比如:"赵虎" <000004>, 这个格式是对的,但是不希望出现 赵虎<000004>,或者赵虎000004,或者赵虎
其实这个也是为了后面的分解做准备(呵呵)2,这个能不能用ASP代码进行分解,呵呵
上面最后两个问题,主要是为这步做准备的
大哥,等你的好消息咯
他是本版最勤奋和热心的人,我都很佩服他~~~
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]+'"<'+link[i][1]+'></div>';
}
else
data+='<div onclick="setTxt(this.innerHTML)">"'+link[i][0]+'"<'+link[i][1]+'></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]+'"<'+link[i][1]+'></div>';
else
data+='<div onclick="setTxt(this.innerHTML)">"'+link[i][0]+'"<'+link[i][1]+'></div>';
}
if(data!="")
{
getDivPosition(email);
addr.innerHTML=data;
addr.style.display="";
addr.focus();
}
}
function setTxt(v)
{
v=v.replace("<","<").replace(">",">");
email.value=email.value.substr(0,email.value.lastIndexOf(",")+1)+v+",";//====================
if(/opera/gi.test(navigator.userAgent))
{
//Opera的话会把"变为",只好替换回来了.
email.value=email.value.replace(/"/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("<","<").replace(">",">")+"</span>格式不正确!</div>";
}
else if(!checkExists(reg,es[i]))
{
if(errMsg=="")
errMsg=style;
errNum++;
errMsg+="<div>"+errNum+".<span class='err'>"+es[i].replace("<","<").replace(">",">")+"</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> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </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>
<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]+'"<'+link[i][1]+'></div>';
}
else
data+='<div onclick="setTxt(this.innerHTML)">"'+link[i][0]+'"<'+link[i][1]+'></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]+'"<'+link[i][1]+'></div>';
else
data+='<div onclick="setTxt(this.innerHTML)">"'+link[i][0]+'"<'+link[i][1]+'></div>';
}
if(data!="")
{
getDivPosition(email);
addr.innerHTML=data;
addr.style.display="";
addr.focus();
}
}
function setTxt(v)
{
v=v.replace("<","<").replace(">",">");
email.value=email.value.substr(0,email.value.lastIndexOf(",")+1)+v+",";
if(/opera/gi.test(navigator.userAgent))
{
//Opera的话会把"变为",只好替换回来了.
email.value=email.value.replace(/"/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("<","<").replace(">",">")+"</span>格式不正确!</div>";
}
else if(!checkExists(reg,es[i]))
{
if(errMsg=="")
errMsg=style;
errNum++;
errMsg+="<div>"+errNum+".<span class='err'>"+es[i].replace("<","<").replace(">",">")+"</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> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </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>