!~~~怎样判断e_mail填写是否正确~~~!

le_yuan 2004-09-17 03:21:35
<form action="sucess.jsp" method="post">...请填写正确的email<input type="text" name="email">...</form>请哪位高手给个javascript,判断email里应该含个@,另外那个onsubmit怎么写也教下我好吗?
...全文
1055 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
le_yuan 2004-09-19
强强强!高手太多了,明天给分!
  • 打赏
  • 举报
回复
xunyiren 2004-09-18
<form action="sucess.jsp" method="post" onsubmit="return check_Email(this)">
...请填写正确的email<input type="text" name="email">
<INPUT TYPE="submit" value="提交">
</form>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check_Email(obj) {
var pattern = /^\w+@\w+\.\w{1,3}$/g;
if (!pattern.test(obj.email.value)){alert("请输入正确的邮件地址!!");return false;}
}
//-->
</SCRIPT>
  • 打赏
  • 举报
回复
gf8205075 2004-09-18
//校验邮件字段
function checkmail(email)
{
//email=trim(email)
if (email!="")
{
//校验非法字符
if (!checkStr(email))
{
alert("输入的E-mail格式不对!");
return false;
}
//.必须在@之后
if ((email.indexOf("@") < 1) || (email.indexOf(".")<email.indexOf("@")))
{
alert("输入的E-mail格式不对!");
return false;
}
//@与.之间必须有字符串
if ((email.indexOf(".")-email.indexOf("@"))<=1)
{
alert("输入的E-mail格式不对!");
return false;
}
//.后必须有字符
if ((email.length-email.indexOf("."))<=1)
{
alert("输入的E-mail格式不对!");
return false;
}
//校验字符串中只允许有一个@和
var j=0
for( var i=0; i<email.length; i++ )
if (email.charAt(i) == '@')
{
j=j+1
}
if (j>1)
{
alert("输入的E-mail格式不对!");
return false;
}
}
return true;
}

//校验邮件域名
function checkemaildomain(email)
{
//email=trim(email)
if (email!="")
{
//校验非法字符
if (!checkStr(email))
{
alert("输入的邮件域名格式不对!");
return false;
}
//.必须在@之后,且@必须是第一位。
if ((email.indexOf("@") > 0) || (email.indexOf(".")<email.indexOf("@")))
{
alert("输入的邮件域名格式不对!");
return false;
}
//@与.之间必须有字符串
if ((email.indexOf(".")-email.indexOf("@"))<=1)
{
alert("输入的邮件域名格式不对!");
return false;
}
//.后必须有字符
if ((email.length-email.indexOf("."))<=1)
{
alert("输入的邮件域名格式不对!");
return false;
}
//校验字符串中只允许有一个@和.
var j=0
for( var i=0; i<email.length; i++ )
if (email.charAt(i) == '@')
{
j=j+1
}
if (j>1)
{
alert("输入的邮件域名格式不对!");
return false;
}
}
return true;
}
  • 打赏
  • 举报
回复
shangqiao 2004-09-18
建议看看struts的源码,看他验证email是怎么弄的
  • 打赏
  • 举报
回复
cocohui 2004-09-18
吾心如秋思,爱随雨后归

我认为他的代码是不是太多了。。一个EMAIL的验正是不是得不偿失啊。。

我不知道我的观点是否正确。
yyfeng1982(遥遥) 的代码简单明了啊!!
  • 打赏
  • 举报
回复
amjiahe 2004-09-18
这个问题太简单了,问点难点的给我QQ:373912556
  • 打赏
  • 举报
回复
seafo 2004-09-18
function validateEmail(strValue) {
if(strValue=="")return true;
var objRegExp = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
return objRegExp.test(strValue);
}

这个够简单了吧
  • 打赏
  • 举报
回复
gumplei 2004-09-17
redlaputa(吾心如秋思,爱随雨后归)的挺不错的。。。
  • 打赏
  • 举报
回复
pingfan520 2004-09-17
呵呵!用redlaputa(吾心如秋思,爱随雨后归)的正则表达式吧。
  • 打赏
  • 举报
回复
yyfeng1982 2004-09-17
function isEmail(theStr) {
var atIndex = theStr.indexOf('@');
var dotIndex = theStr.indexOf('.',atIndex);
var flag = true;
theSub = theStr.substring(0,dotIndex +1);
if((atIndex <1) ||(atIndex != theStr.lastIndexOf('@')) || (dotIndex < atIndex +2) || (theStr.length <= theSub.length)){
flag = false;
}
else{
flag = true;
}
return (flag);
}
  • 打赏
  • 举报
回复
constantine 2004-09-17
这个应该没有一定的方法吧,不通网站的email的要求不一样
比如:有的可以有“.”,有的就不可以,sina的就不行,163的就可以
  • 打赏
  • 举报
回复
redlaputa 2004-09-17
//过滤非法字符
function String.prototype.trim(){return this.replace(/(^\s*)|(\s*$)/g, "");}
//只能输入正确的日期格式
function isDate(s,msg){
if (s.value.length==0)return true;
if (!msg)msg='请输入正确的日期格式﹐例如2003-05-06';
var str=s.value
var reg = /^(\d{4})(-|\/)(0?[1-9]|1[0-2])(-|\/)(0?[1-9]|[12][0-9]|3[01])$/g;
var r = reg.exec(str);
if(r==null){alert(msg);s.select();return false;}
var d = new Date(r[1], r[3]-1,r[5]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
var reg=/(\/|-)(0*)( *)([1-9])/g
var t=s.value.replace(reg,'$1$4')
if (newStr==t){return true;}
s.focus();
s.select();
alert(msg);
return false;
}
//只能输入标准的E-MAIL邮件格式
function isEmail(s,msg){
if (s.value.length==0)return true;
var reg = /^([a-z]){1,}([\.a-z0-9_\-]){1,}([a-z0-9]){1,}@([a-z0-9_-]){3,}(\.([a-z0-9]){2,4}){1,2}$/gi;
if (reg.test(s.value))return true;
else {
alert((msg?msg:'请输入标准的E-MAIL邮件格式,例如test@163.net'));
s.focus();
s.select()
return false;
}
}
//只能输入英文
function isEnglish(s,msg){
var reg=/^[a-z]*$/gi
if(reg.test(s.value))return true
else {
alert((msg?msg:'该栏只能输入英文﹐请改正'));
s.focus();
s.select();
return false;
}
}
//只能输入中文
function isChinese(s,msg){
var reg = /[^\u4E00-\u9FA5]/g;
if (reg.test(s.value)){
s.focus();
s.select()
alert((msg?msg:'该栏只能输入中文﹐请改正'));
return false;
}
return true;
}
//不能输入中文
function isNoChinese(s,msg){
var reg = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;
if (reg.test(s.value)){s.select()
alert((msg?msg:'该栏不能输入中文和全角符号,请改正'));
return false;
}
return true;
}
//不能为空
function isZero(s,msg){
var str=s.value.trim();
if (str.length!=0)return true
else {
alert((msg?msg:'该栏不能为空,请改正'));
s.focus();
s.select();
return false;
}
}
//只能输入数字
function isNumeric(s,msg){
if (s.value*1!=s.value){
alert((msg?msg:'该栏只能输入数字﹐请改正'))
s.focus();
s.select()
return false
}
return true
}

//只能输入英文和数字
function isEN(s,msg){
var reg=/^[a-z0-9.]*$/gi
if(reg.test(s.value))return true
else {
alert((msg?msg:'该栏只能输入英文和数字,请改正'));
s.focus();
s.select();
return false;
}
}
//函数接口
function chkForm(frmName){
this.frmName=frmName;
this.chkFunBody = "";
this.isPass = function(eleName,chkFun,strMsg){
this.chkFunBody += chkFun+"("+this.frmName+"."+eleName
if(strMsg)this.chkFunBody +=",\""+strMsg+"\""
this.chkFunBody +=") && "
var tmp = "return( "+ this.chkFunBody +" true)"
eval(this.frmName+".onsubmit=Function('"+tmp+"');");
}
}

function checkvalue(str)
{
var checkOK = "0123456789-.,";
var checkStr = str;
var allValid = true;
var validGroups = true;
var decPoints = 0;
var allNum = "";
var countNumberAfterDot;
var countYN;

countYN=0;
countNumberAfterDot=0;

for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
{
if (ch == checkOK.charAt(j))
break;
}
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch == ".")
{
decPoints++;
countYN=1;
}
if (ch == "," )
{
if (decPoints != 0)
{
validGroups = false;
break;
}
}

allNum+=ch;

if (countYN==1){
countNumberAfterDot++;}
}

if (!allValid)
{
alert("只能输入 数字 字符。");
return (false);
}

if (decPoints > 1 || !validGroups || countNumberAfterDot >3)
{
alert("请输入一个有效数字。");
return (false);
}

if (checkStr>999999999999.99 )
{
alert("您输入的数值过大,会导致溢出错误。");
return (false);
}
if (checkStr<-999999999999.99)
{
alert("您输入的数值过小,会导致溢出错误。");
return (false);
}


return true;
}


----
如何调用
<SCRIPT LANGUAGE="JavaScript">
var obj=new chkForm("form名字")

obj.isPass("输入框","isEN");

</SCRIPT>


  • 打赏
  • 举报
回复
killer2008 2004-09-17
RFC里面说了,@前面是用户名,后面是主机名,其它的就没什么特别的要求了,只要@是在中间的,并且用户名和主机名没有保留字符(@就是一个保留字符),从语法上来说就没有错误了。
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-17 03:21
社区公告
暂无公告