如何使用JQuery来验证电子邮件地址?
当前回答
<script type = "text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type = "text/javascript">
function ValidateEmail(email) {
var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
return expr.test(email);
};
$("#btnValidate").live("click", function () {
if (!ValidateEmail($("#txtEmail").val())) {
alert("Invalid email address.");
}
else {
alert("Valid email address.");
}
});
</script>
<input type = "text" id = "txtEmail" />
<input type = "button" id = "btnValidate" value = "Validate" />
其他回答
$.validator.addMethod("mymail", function(value, element) {
return this.optional( element ) || /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test( value );
}, "Enter valid email!");
这可能会有帮助!对user4974898的答案做了一个小修改!
你可以创建自己的函数
function emailValidate(email){
var check = "" + email;
if((check.search('@')>=0)&&(check.search(/\./)>=0))
if(check.search('@')<check.split('@')[1].search(/\./)+check.search('@')) return true;
else return false;
else return false;
}
alert(emailValidate('your.email@yahoo.com'));
if($("input#email-address").getVerimailStatus() < 0) {
(incorrect code)
}
if($("input#email-address").getVerimailStatus() == 'error') {
(right code)
}
在输入时验证电子邮件,带有按钮状态处理。
$("#email").on("input", function(){
var email = $("#email").val();
var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
if (!filter.test(email)) {
$(".invalid-email:empty").append("Invalid Email Address");
$("#submit").attr("disabled", true);
} else {
$("#submit").attr("disabled", false);
$(".invalid-email").empty();
}
});
我推荐Verimail.js,它也有一个JQuery插件。
为什么?Verimail支持以下功能:
语法验证(根据RFC 822) IANA TLD验证 最常见的顶级域名和电子邮件域的拼写建议 拒绝临时电子邮件帐户域,如mailinator.com
所以除了验证,Verimail.js还会给你建议。因此,如果你输入了错误的顶级域名或域名,与普通的电子邮件域名(hotmail.com, gmail.com等)非常相似,它可以检测到这一点,并建议纠正。
例子:
test@gnail.con ->你是说test@gmail.com吗? test@hey.nwt ->你是说test@hey.net吗? test@hottmail.com ->你是说test@hotmail.com吗?
等等。
要使用jQuery,只需在你的网站上包含verimail.jquery.js,并运行下面的函数:
$("input#email-address").verimail({
messageElement: "p#status-message"
});
message元素是将在其中显示消息的元素。从“您的邮件无效”到“您的意思是……?”
如果你有一个表单,并且想要限制它,使它不能提交,除非电子邮件是有效的,那么你可以使用getVerimailStatus-function检查状态,如下所示:
if($("input#email-address").getVerimailStatus() < 0){
// Invalid
}else{
// Valid
}
该函数根据对象Comfirm.AlphaMail.Verimail.Status返回一个整数状态码。但一般的经验法则是,任何低于0的代码都是表示错误的代码。
推荐文章
- 如何关闭mysql密码验证?
- 可以在setInterval()内部调用clearInterval()吗?
- 无法读取未定义的属性“msie”- jQuery工具
- jQuery:执行同步AJAX请求
- jQuery表格排序
- 如何禁用文本选择使用jQuery?
- 如何停止事件冒泡复选框点击
- Bootstrap抛出Uncaught错误:Bootstrap的JavaScript需要jQuery
- 如何删除和清除所有的本地存储数据
- 如何修改标签文本?
- 如何获得十六进制颜色值而不是RGB值?
- 如何将一个标题转换为jQuery的URL段塞?
- c#消毒文件名
- JavaScript:客户端验证与服务器端验证
- $(window).width()与媒体查询不一样