将表单设置为只允许.edu电子邮件地址

Setting a form to only allow .edu email addresses

本文关键字:edu 电子邮件地址 表单 设置      更新时间:2023-09-26

我有一个表格,要求用户输入他们的名字和姓氏,以及他们的学校电子邮件。脚本被设置为只允许@msu.edu电子邮件,但我希望它能够接受任何带有.edu电子邮件的电子邮件。

function send() {
        var regex = /^(['w-]+(?:'.['w-]+)*)@msu'.edu/i;
        var fname = $("#fname").val();
        var lname = $("#lname").val();
        var email = $("#email").val();
        if(fname != "" && lname != "") {
            if(regex.test(email)) {
                var newUser = new Parse.Object("StartupRegister");
                newUser.save({
                        fname: fname,
                        lname: lname,
                        email: email
                    },{
                        success: function(user) {
                            window.location = "msu_form.php";
                        }, error: function(user, error) {
                        }
                    });
            } else {
                alert("Not an MSU email.");
            }
        } else {
            alert("You must enter your name.");
        }
    }
</script>

将正则表达式的msu部分更改为(?:['w]+'.)+,使其看起来像:

var regex = /^(['w-]+(?:'.['w-]+)*)@(?:['w-]+'.)+edu/i;

这里有一个可以使用的简单算法:

1-你可以创建一个简单的功能来检查电子邮件地址是否有效

2-根据字符串".edu"从末尾匹配电子邮件地址

真实世界示例:

function validateEmail(email) {
  var emailReg = /^(['w-'.]+@(['w-]+'.)+['w-]{2,4})?$/;
  if( !emailReg.test( email ) ) {
    return false;
  } else {
    return true;
  }
}

上一个函数来自:使用jquery 进行电子邮件验证

function checkEdu(email){
    return (email.substr(-4) == '.edu');
}

这里的优点是您有一个validateEmail功能,可以在其他项目中使用

以及特定于这种情况的checkEdu功能

注:

substr(begin,length):从索引开始,取长度字符

substr(-length):从末尾开始,取长度字符