как ограничить определенный домен (ы) электронной почты, а также отправить форму

Я пытаюсь ограничить отправку формы для конкретных почтовых доменов под html / php. В принципе, я не хочу, чтобы какой-либо пользователь регистрировался по определенным доменам электронной почты.

Например, все домены электронной почты будут в порядке, за исключением ниже;

@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; } 

Поэтому перед отправкой формы выполните эту функцию и проверьте значение.

Вы можете достичь того же через атрибут входного тега HTML5 (шаблон). Скажем, например, ваш домен является foo.com, тогда код будет:

 <input id="email" type="email" pattern="[az.]*[@]\bfoo.com" required> 

Также вы можете изменить сообщение об ошибке, используя setCustomValidity элемента DOM.

 document.getElementById('email').setCustomValidity("Please use an @foo.com email address."); 

Если вы хотите выполнить проверку на сервере, вы можете использовать этот скрипт, иначе вы можете сделать такую ​​же проверку, используя 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"; }