学院首页>网络编程>ASP>表单递交合法性检测-Email

表单递交合法性检测-Email

作者:未知 来源:未知 添加时间:2006-5-21 10:27:05
以下代码加入HTML的<body>区: 
<script language="javascript"> 
<!-- Begin 
function chk(email, formname) 

invalid = ""; 

if (!email) 
invalid = "请输入您的Email地址。"; 

else { 

if ( (email.indexOf("@") == -1) || (email.indexOf(".") == -1) ) 
invalid += "\n\nEmail地址不合法。应当包含'@'和'.';例如('.com')。请检查后再递交。"; 

if (email.indexOf("your email here") > -1) 
invalid += "\n\nEmail地址不合法,请检测您的Email地址,在域名内应当包含'@'和'.';例如('.com')。"; 

if (email.indexOf("\\") > -1) 
invalid += "\n\nEmail地址不合法,含有非法字符(\\)。"; 

if (email.indexOf("/") > -1) 
invalid += "\n\nEmail地址不合法,含有非法字符(/)。"; 

if (email.indexOf("'") > -1) 
invalid += "\n\nEmail地址不合法,含有非法字符(')。"; 

if (email.indexOf("!") > -1) 
invalid += "\n\nEmail地址不合法,含有非法字符(!)。"; 

if ( (email.indexOf(",") > -1) || (email.indexOf(";") > -1) ) 
invalid += "\n\n只输入一个Email地址,不要含有分号和逗号。"; 

if (email.indexOf("?subject") > -1) 
invalid += "\n\n不要加入'?subject=...'。"; 


if (invalid == "") 

return true; 

else 

alert("输入的Email可能包含错误:" + invalid); 
return false; 



// End --> 
</script> 


<form method="post" name="myform" action="submit.cgi" onSubmit="return chk(document.myform.email.value)"> 
<div align="center"> 
<input type="text" name="email" value="your email here"> 
<input type="submit" name="Submit" value="Submit"> 
</div> 
</form> 

说明:应该引起注意的地方我已经用绿色标记出来了。除了做Email的非空检测外,还应该检测某些非法字符的填写,你可以仿照上面的方法将你所要禁止的字符全部加上。检测斜杠“\”稍微有一点复杂,因为“\”有其特殊的含义-转意符号,它的作用将它后面字符的原来的含义屏蔽起来,所以检测它本身我们使用2个斜杠“\\”。此外,我们经常再表单区事先填写“your mail here”等提示性的话,为了防止访问者直接按递交,将“your mail here”作为合法的邮件地址发送,所以禁止递交这些提示也是必须的。 
站内搜索