一些表单页面比较适用的小脚本,在Oreilly的JavaScript And DHTML那本小册子看到的。
// validates that the entry is formatted as an email address function isEMailAddr(elem) { var str = elem.value; str = str.toLowerCase( ); if (str.indexOf("@") > 1) { var addr = str.substring(0, str.indexOf("@")); var domain = str.substring(str.indexOf("@") + 1, str.length); // at least one top level domain required if (domain.indexOf(".") == -1) { alert("Verify the domain portion of the email address."); return false; } // parse address portion first, character by character for (var i = 0; i < addr.length; i++) { oneChar = addr.charAt(i).charCodeAt(0); // dot or hyphen not allowed in first position; dot in last if ((i == 0 && (oneChar == 45 || oneChar == 46)) || (i == addr.length - 1 && oneChar == 46)) { alert("Verify the user name portion of the email address."); return false; } // acceptable characters (- . _ 0-9 a-z) if (oneChar == 45 || oneChar == 46 || oneChar == 95 || (oneChar > 47 && oneChar < 58) || (oneChar > 96 && oneChar < 123)) { continue; } else { alert("Verify the user name portion of the email address."); return false; } } for (i = 0; i < domain.length; i++) { oneChar = domain.charAt(i).charCodeAt(0); if ((i == 0 && (oneChar == 45 || oneChar == 46)) || ((i == domain.length - 1 || i == domain.length - 2) && oneChar == 46)) { alert("Verify the domain portion of the email address."); return false; } if (oneChar == 45 || oneChar == 46 || oneChar == 95 ||(oneChar > 47 && oneChar < 58) || (oneChar > 96 && oneChar < 123)) { continue; } else { alert("Verify the domain portion of the email address."); return false; } } return true; } alert("The email address may not be formatted correctly. Please verify."); return false; }
1) 检测email地址中“@”字符的存在否;
2) 检测“@”字符后的域名是否含有“.”
3) 检测“.”的位置,判定域名是否合法(是不是“@”后第一个字符或者最后一个字符)
4) 检测email中能存在的合法字符。“@”之前以及之后的部分分开检测。
下面这个用正则式判断email,比上述方法简短很多哦~
function isEMailAddr(elem) { var str = elem.value; var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/; if (!str.match(re)) { alert("Verify the email address format."); return false; } else { return true; } 就这么用就OK啦<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <script type="text/javascript"> // validates that the entry is formatted as an email address function isEMailAddr(elem) { var str = elem.value; var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/; if (!str.match(re)) { alert("Verify the email address format."); return false; } else { return true; } } </script> <form name="myform" method="post" action="."> Verify the email: <input type="text" size="30" name="eMail" id="eMail" onblur="isEMailAddr(this)" /> </form> </body> </html>

天书啊!!!