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

时间:2014-11-02 17:42:40

标签: javascript

我有一个表单会要求用户输入他们的姓名和学校邮件。该脚本设置为仅允许@ 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>

2 个答案:

答案 0 :(得分:0)

将正则表达式的msu部分更改为(?:[\w]+\.)+,如下所示:

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

答案 1 :(得分:-1)

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

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

2-将结尾的电子邮件地址与字符串“匹配。”edu“

现实世界的例子:

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

上一个功能来自:email-validation-using-jquery

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

这里的优点是你有一个可以在其他项目中使用的validateEmail函数

以及特定于此案例的checkEdu函数

注意:

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

substr(-length):从结尾开始并取长度字符