我有一个表单会要求用户输入他们的姓名和学校邮件。该脚本设置为仅允许@ 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>
答案 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):从结尾开始并取长度字符