我正在尝试使用jQuery查看用户是否在我的文本框中输入了有效的电子邮件地址。 基本上,我希望提交按钮默认保持禁用状态,但是在每个键盘上我想看看电子邮件地址是否有效,那么我想启用该按钮。如果用户输入有效的电子邮件,但随后删除部分以使其再次失效(即@符号),我希望再次禁用提交按钮。
我这里有一个部分工作的脚本。我的支票或@符号效果很好,但我很难检查.com,.co,.net,.org,.edu等...出于某种原因,即使我没有输入按钮,该按钮也会保持启用状态电子邮件的有效“结尾”。
例如,“emailco @”被识别为有效的电子邮件。这是我的剧本:
<script>
$(document).ready(function() {
$('#email').bind('keyup', function(e) {
var email = document.getElementById("email");
if (email.value.search("@") != -1) {
if (
(email.value.search(".com") != -1)||
(email.value.search(".co") != -1)||
(email.value.search(".org") != -1)||
(email.value.search(".net") != -1)||
(email.value.search(".gov") != -1)||
(email.value.search(".biz") != -1)||
(email.value.search(".me") != -1)||
(email.value.search(".edu") != -1)) {
document.getElementById("email_go").disabled = false;
}
else {
document.getElementById("email_go").disabled = true;
}
}
else {
document.getElementById("email_go").disabled = true;
}
});
});
</script>
答案 0 :(得分:1)
var email = $('#email').val();
var pattern = ".+\\@@.+\\..+";
var valid = email.match(pattern);
if (valid == null) {
alert("Not Valid");
return;
}
else{
alert("Valid");
return;
}
答案 1 :(得分:1)
只需使用正则表达式:
if (email.value.search("@") != -1) {
if (/(.+)@(.+)\.(com|edu|org|etc)$/.test(email.value))
}
答案 2 :(得分:1)
试试这个。当然,这只是一个基本的例子,我确信现在的电子邮件地址可能不仅仅是下面数组中指定的内容。但是,仍然......你明白了......
// Split the email to see if there's an "@" character
var split = email.split('@');
var split_count = split.length;
// If there is, then split the second string by a "."
if (split_count == 2) {
var domain = split[1].split('.');
var domain_count = domain.length;
if (domain_count == 2) {
// Store all of the accepted values for email endings
var endings = ['org', 'com', 'net', 'edu', 'info', 'biz', 'me'];
var result = $.inArray(domain[1], endings);
// If the final 3 chars of the string are in the array, then proceed
if (result > 0) {
}
}
}
答案 3 :(得分:1)
我使用此正则表达式代码使用jQuery测试电子邮件格式:
var email = $('.email').val();
if(email.match(/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/))
{
alert('OK');
}