使用 jQuery 检查电子邮件地址数组

Check an array of email addresses with jQuery

本文关键字:数组 电子邮件地址 检查 jQuery 使用      更新时间:2023-09-26

我正在使用jQuery,并想检查电子邮件地址是否托管在免费电子邮件服务域(即Yahoo,gmail,hotmail等)中。

下面的代码做到了,但不幸的是,我对语法的了解不足以将域名放在数组中,现在我可以检查(无需额外的 if 语句)在这种情况下,电子邮件是否仅由雅虎托管。

有没有像if ($(this).val().indexOf("yahoo.com && gmail.com && hotmail.com && ... ") != -1)

这是脚本:

<script type="text/javascript">
$(document).ready(function(){
    $('#bemail').click(
        function(e){
            e.preventDefault;
            if ($(this).val().indexOf("Business email is required") != -1) {
            $('#bemail').val("");
            }
    });
    $('#bemail').blur(function() {
        if ($(this).val().indexOf("yahoo.com") != -1)
        {
            $(this).val("Business email is required");
        }
    });
});
</script>

谢谢。

您可以创建一组电子邮件服务,然后检查您的值以查看它是否等于您列出的任何电子邮件。为此,您可以使用 for 循环将数组中的每个值与输入值进行比较。你会做这样的事情:

var freeServices = ["yahoo.com", "gmail.com"];
$('#bemail').blur(function() {
    for(var i = 0; len = freeServices.length; i<len; i++) {
        if ($(this).val().indexOf(freeServices[i]) != -1) {
            $(this).val("Business email is required");
        }
    }
});

根据需要将电子邮件服务添加到阵列中,并保留语法。

艾略特,谢谢你的解决方案。复制粘贴的代码不起作用(我不知道为什么,也许是因为没有声明 len,尽管我尝试过),所以我为像我这样不太了解 Javascript 的人修复了它......以下是适用于我的页面的代码:

$('#bemail').blur(function() {
var freeServices = ["yahoo.com","gmail.com","hotmail.com"];
    for(var i = 0; i < freeServices.length; i++)
    {
        if ($(this).val().indexOf(freeServices[i]) != -1)
        {
            $(this).val("Business email is required");
        }
    }
});