高分求救:JavaScript 如何验证 Email 格式的正确性? 十万火急!!!
在制作网页的注册验证时,如何用 JavaScript 如何验证 Email 格式的正确性?
请高手详细指教,尽量详细,最好有详细代码。 多谢多谢!!!
得到答案马上 高分 结贴
问题点数:80、回复次数:5Top
1 楼astra1(Hyperion)回复于 2006-03-10 00:09:59 得分 10
用正则
if(!/\w+@\w+(\.\w+)+/ig.test(form1.email.value))
alert('邮件地址不对');Top
2 楼mingxuan3000(铭轩)回复于 2006-03-10 03:39:36 得分 20
function checkEmail( email)
{
var reEmail = /^([A-Za-z0-9])(\w)+@(\w)+(\.)(com|com\.cn|net|cn|net\.cn|org|biz|info|gov|gov\.cn|edu|edu\.cn)/;
if (!email.match(reEmail)&&email!="")
{
alert('Email必须符合要求!');
return false;
}
else return true;
}
google 搜 JavaScript 如何验证 Email 格式
n多Top
3 楼rcom10002(KNIGHTRCOM)回复于 2006-03-10 08:30:13 得分 10
[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}Top
4 楼iuhxq(小灰)回复于 2006-03-10 08:54:31 得分 20
<title>表单验证类 Validator v1.05</title>
<style>
body,td{font:normal 12px Verdana;color:#333333}
input,textarea,select,td{font:normal 12px Verdana;color:#333333;border:1px solid #999999;background:#ffffff}
table{border-collapse:collapse;}
td{padding:3px}
input{height:20;}
textarea{width:80%;height:50px;overflow:auto;}
form{display:inline}
</style>
<table align="center">
<form name="theForm" id="demo" method="get" onSubmit="return Validator.Validate(this,2)">
<tr>
<td>身份证号:</td><td><input name="Card" dataType="IdCard" msg="身份证号错误"></td>
</tr>
<tr>
<td>真实姓名:</td><td><input name="Name" dataType="Chinese" msg="真实姓名只允许中文"></td>
</tr>
<tr>
<td>ID:</td><td><input name="username" dataType="Username" msg="ID名不符合规定"></td>
</tr>
<tr>
<td>英文名:</td><td><input name="Nick" dataType="English" require="false" msg="英文名只允许英文字母"></td>
</tr>
<tr>
<td>主页:</td><td><input name="Homepage" require="false" dataType="Url" msg="非法的Url"></td>
</tr>
<tr>
<td>密码:</td><td><input name="Password" dataType="SafeString" msg="密码不符合安全规则" type="password"></td>
</tr>
<tr>
<td>重复:</td><td><input name="Repeat" dataType="Repeat" to="Password" msg="两次输入的密码不一致" type="password"></td>
</tr>
<tr>
<td>信箱:</td><td><input name="Email" dataType="Email" msg="信箱格式不正确"></td>
</tr>
<tr>
<td>信箱:</td><td><input name="Email" dataType="Repeat" to="Email" msg="两次输入的信箱不一致"></td>
</tr>
<tr>
<td>QQ:</td><td><input name="QQ" require="false" dataType="QQ" msg="QQ号码不存在"></td>
</tr>
<tr>
<td>身份证:</td><td><input name="Card" dataType="IdCard" msg="身份证号码不正确"></td>
</tr>
<tr>
<td>年龄:</td><td><input name="Year" dataType="Range" msg="年龄必须在18~28之间" min="18" max="28"></td>
</tr>
<tr>
<td>年龄1:</td><td><input name="Year1" require="false" dataType="Compare" msg="年龄必须在18以上" to="18" operator="GreaterThanEqual"></td>
</tr>
<tr>
<td>电话:</td><td><input name="Phone" require="false" dataType="Phone" msg="电话号码不正确"></td>
</tr>
<tr>
<td>手机:</td><td><input name="Mobile" require="false" dataType="Mobile" msg="手机号码不正确"></td>
</tr>
<tr>
<td>生日:</td><td><input name="Birthday" dataType="Date" format="ymd" msg="生日日期不存在"></td>
</tr>
<tr>
<td>邮政编码:</td><td><input name="Zip" dataType="Custom" regexp="^[1-9]\d{5}$" msg="邮政编码不存在"></td>
</tr>
详情请查看:http://www.blueidea.com/tech/web/2004/2360.aspTop
5 楼tragedy(我要读书)回复于 2006-03-10 10:18:56 得分 20
正好有也在做这个,用javascript写的,运行正常
----------------------------------------------------------------------------------
function CheckEmail(str){
var CHAR_LETTER_NUMERIC=1;
var CHAR_UNDERLINE=2;
var CHAR_DOT=3;
var CHAR_AT=4;
var CHAR_DIVIDE=5;
var CHAR_END=6;
var CHAR_OTHER=7;
var DIV_CHAR=',';
var rc=true;
if (str+"" == "undefined" || str == null){
rc=false;
return rc;
} else if(str.length==0){
rc=true;
return rc;
}
var exit_flag=false;
var total_char=str.length;
var pos=0;
var cur_char;
var cur_status=0;
while((pos<=total_char) && (!exit_flag)){
if(pos==total_char){
cur_char=CHAR_END;
}
else if (str.charAt(pos)=='.'){
cur_char=CHAR_DOT;
}
else if (str.charAt(pos)==DIV_CHAR){
cur_char=CHAR_DIVIDE;
}
else if(str.charAt(pos)=='_'){
cur_char=CHAR_UNDERLINE;
}
else if(str.charAt(pos)=='@'){
cur_char=CHAR_AT;
}
else if(((str.charAt(pos)>='a')&&(str.charAt(pos)<='z'))||((str.charAt(pos)>='A')&&(str.charAt(pos)<='Z'))||((str.charAt(pos)>='0')&&(str.charAt(pos)<='9'))||(str.charAt(pos)=='-')){
cur_char=CHAR_LETTER_NUMERIC;
}
else{
cur_char=CHAR_OTHER;
}
switch (cur_status){
case -1://error
rc=false;
exit_flag=true;
break;
case 0://initial status
if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
cur_status=1;
}
else{
rc=false;
cur_status=-1;
}
break;
case 1://user name
if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
cur_status=1;
}
else if(cur_char==CHAR_AT){
cur_status=2;
}
else{
rc=false;
cur_status=-1;
}
break;
case 2://@
if(cur_char==CHAR_LETTER_NUMERIC){
cur_status=6;
}
else{
rc=false;
cur_status=-1;
}
break;
case 6://"."
if(cur_char==CHAR_LETTER_NUMERIC){
cur_status=6;
}
else if(cur_char==CHAR_DOT){
cur_status=3;
}
else{
rc=false;
cur_status=-1;
}
break;
case 3://fisrt domain name
if(cur_char==CHAR_LETTER_NUMERIC){
cur_status=4;
}
else{
rc=false;
cur_status=-1;
}
break;
case 4://not first domain name
if(cur_char==CHAR_LETTER_NUMERIC){
cur_status=4;
}
else if(cur_char==CHAR_DOT){
cur_status=3;
}
else if(cur_char==CHAR_DIVIDE){
cur_status=0;
}
else if(cur_char==CHAR_END){
cur_status=5;
}
else{
rc=false;
cur_status=-1;
}
break;
case 5://ok
rc=true;
exit_flag=true;
break;
default:
rc=false;
exit_flag=true;
break;
}
pos++;
}
return rc;
}
Top




