Javascript 如何在提交表单时限制特定的电子邮件域
我试图限制在html/php下提交特定电子邮件域的表单。基本上我不希望任何用户注册特定的电子邮件域 例如,所有的电子邮件域都可以,除了下面的域Javascript 如何在提交表单时限制特定的电子邮件域,javascript,php,jquery,html,regex,Javascript,Php,Jquery,Html,Regex,我试图限制在html/php下提交特定电子邮件域的表单。基本上我不希望任何用户注册特定的电子邮件域 例如,所有的电子邮件域都可以,除了下面的域 @deny.com @reject.net @spam.org 如何使用jQuery、正则表达式或其他更好的方法来实现这种行为 提前感谢,您可以使用Javascript/Jquery来实现这一点。创建一个函数来验证电子邮件 var rejectList = [ "deny.com" , "reject.net" ]; function valida
@deny.com
@reject.net
@spam.org
如何使用jQuery、正则表达式或其他更好的方法来实现这种行为
提前感谢,您可以使用Javascript/Jquery来实现这一点。创建一个函数来验证电子邮件
var rejectList = [ "deny.com" , "reject.net" ];
function validateEmailField()
{
var emailValue = $('#email-input').val(); // To Get Value (can use getElementById)
var splitArray = emailValue.split('@'); // To Get Array
if(rejectList.indexOf(splitArray[1]) >= 0)
{
// Means it has the rejected domains
return false;
}
return true;
}
因此,在发布表单之前,请执行此函数并检查值。如果要在服务器端执行验证,可以使用此脚本,或者可以使用jquery或javascript执行相同类型的验证
$denied = array("deny.com","reject.net","spam.org");
function getDomainFromEmail($email)
{
// Get the data after the @
$domain = substr(strrchr($email, "@"), 1);
return $domain;
}
$email = 'the_username_here@deny.com';
$domain = getDomainFromEmail($email);
echo $domain;
if (in_array($domain, $denied)) {
//denied user alert
echo "denied";
}
else
{
//valid user
echo "valid";
}
您可以通过HTML5输入标记属性(模式)实现相同的功能。 例如,假设您的域是foo.com,那么代码将是:
<input id="email" type="email" pattern="[a-z.]*[@]\bfoo.com" required>
可以在输入标记中使用pattern属性。它指定一个正则表达式,在表单提交时根据该正则表达式检查元素的值
<input type="email" id="email"
pattern=".+@gmail.com" size="30" required>
上面的代码只接受以域名@gmail.com结尾的电子邮件你自己做过什么吗?是的,这就是我来这里的原因。我想知道你能选择什么样的最佳方式,然后向我们展示你的尝试。@FrebinFrancis谢谢你,那些脚本工作得很好。很好的解决方案。在发布之前,我将其翻译成php来验证我的电子邮件地址。效果很好。
<input type="email" id="email"
pattern=".+@gmail.com" size="30" required>