javascript判断邮箱

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript判断邮箱相关的知识,希望对你有一定的参考价值。

<script language=javascript>
//该函数可以检查出不包含@,不包含.,不包含用户名,不包含服务商,不包含域名五个错误。
function message()
var str=form1.textfield.value;
var i=str.indexOf("@");
var j=str.indexOf(".");
var k=str.length-1-j;
if ((i<1)||(i-j>1)||(j<1)||(k>0));
alert("请输入正确的邮箱地址!");

</script>
<form name=form1 method=post action="a.asp">
<input type=text name=textfield>
<input type=button name=Submit value=提交 onclick=message()>
</form>
我输入正确的还是报错,麻烦指出错误!
非常感谢你的方法,可以帮我指出错误吗?我在学习,不是搞个正确的就好了!

判断是否是邮箱,以及邮箱格式是否正确。

这个最好用正则表达式

下面是正则表达式,仅供参考:

 function test()

     var temp = document.getElementById("text1");   //输入邮箱的文本框
     //对电子邮件的验证
     var myreg = /^([a-zA-Z0-9]+[_|\\_|\\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\\_|\\.]?)*[a-zA-Z0-9]+\\.[a-zA-Z]2,3$/;
    if(!myreg.test(temp.value))
        alert(\'提示\\n\\n请输入有效的E_mail!\');
        myreg.focus();
        return false;
    
参考技术A 建议使用正则表达式
function checkemail(str)
var sReg = /[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+$/;
if ( ! sReg.test(str) )

alert("Email地址错误!请重新输入。");
return false;


return true;
参考技术B 建议使用正则表达式
function checkemail(str)
var sReg = /[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+$/;
if ( ! sReg.test(str) )

alert("Email地址错误!请重新输入。");
return false;


return true;
本回答被提问者和网友采纳

如何判断一个邮箱地址是否教育邮箱?

【中文标题】如何判断一个邮箱地址是否教育邮箱?【英文标题】:How to understand if an e-mail address is an education e-mail address or not?如何判断一个邮箱地址是不是教育邮箱? 【发布时间】:2012-11-22 23:53:00 【问题描述】:

我希望只有大学生能够注册我的网站,但我不知道如何控制它。我还希望 .edu.fr、edu.tr 或其他 .edu 扩展名能够加入我的网站,而不仅仅是 .edu 的。我正在考虑使用一些 reg-ex,但我找不到任何解决方案。如果有人可以帮助我,我会很高兴?

应该没那么重要,但我使用的是带有 laravel 框架的 PHP。

【问题讨论】:

查看这两个帖子:***.com/questions/5136678/… 和 ***.com/questions/6609195/… 这对我来说似乎是一个失败的原因。您不能保证电子邮件将采用任何格式。例如,我的大学为学生提供了一个 ulaval.ca 电子邮件地址。 【参考方案1】:

大多数教育机构的域名都遵循以下模式:

uni.edu
uni.edu.fr
uni.ac.uk

以下正则表达式涵盖了所有此类情况:

/(\.edu(\.[a-z]+)?|\.ac\.[a-z]+)$/

您可以根据需要向正则表达式添加案例。通过发送带有确认链接的自动电子邮件来检查电子邮件是否真实。

对应的PHP:

if (preg_match('/(\.edu(\.[a-zA-Z]+)?|\.ac\.[a-zA-Z]+)$/i', $domain)) 
    // allow

【讨论】:

【参考方案2】:

没有很好的方法,但一种可能的方法是使用@符号来分解地址:

// Split the email address into 2 values of an array using the @ symbol as delimiter.
$emailParts = explode('@', $theEmailAddress);
// If the second part (domain part) contains .edu, period, country code or just .edu, then allow signup.
if (preg_match('/\.edu\.[^.]+$/i', trim($emailParts[1])) || preg_match('/\.edu$/i', trim($emailParts[1]))) 
    // Use the above if you are assuming that the country codes can be any number of characters. If you know for sure country codes are 2 chars, use this condition:
    // (preg_match('/\.edu\.[^.]2$/i', trim($emailParts[1])) || preg_match('/\.edu$/i', trim($emailParts[1])))
    // Allow signup

当然,这并不能保证域或电子邮件地址是现有的!

【讨论】:

以上是关于javascript判断邮箱的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript辅助方法系列:用正则表达式判断手机号和邮箱

IFE_part2_JavaScript_正则表达式运用(判断邮箱/手机号码)

javascript验证代码总结

JavaScript----表单验证

JavaScript 邮箱验证 - 正则验证

javascript表单验证-邮箱验证