Вы можете использовать установленное регулярное выражение для проверки адресов электронной почты.Если вы хотите выполнить простую проверку без плагина jQuery validate, вы можете поместить проверку в форму submit
обработчик событий
$(function () {
// regex from http://fightingforalostcause.net/misc/2006/compare-email-regex.php
var emailRegex = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
// capture the field to test
var textBoxToTest = $('input.required.email');
// set up a submit event handler
$('#commentForm').submit(function () {
return emailRegex.test(textBoxToTest.val());
});
});
Если значение поля ввода не совпадает с шаблоном регулярных выражений электронной почты, то .test()
call вернет false, что отменит действие по умолчанию <form>
(то есть предотвратит его отправку), а также предотвратит дальнейшее всплывающее событие вверх по дереву DOM.
Теперь вы также можете поставить его точкус плагином validate путем создания валидатора с использованием регулярного выражения и настройки его для поля, а затем позволяя плагину validate позаботиться о том, чтобы форма не отправлялась, когда поле недопустимо.Однако я вижу, что вы используете веб-формы ASP.NET, поэтому я бы предложил использовать элемент управления RegularExpressionValidator
.Что-то вроде
<head runat="server">
<title></title>
<style type="text/css">
#commentForm
{
width: 500px;
}
</style>
</head>
<body>
<form runat="server" id="commentForm">
<fieldset>
<legend>Please provide your email address</legend>
<p>
<label for="cemail">
E-Mail (required)</label>
<asp:TextBox ID="TextBox1" runat="server" CssClass="required email"></asp:TextBox>
<asp:RegularExpressionValidator
ID="regexpName" runat="server"
ErrorMessage="Please enter a valid email address"
ControlToValidate="TextBox1"
ValidationExpression="/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i"
EnableClientScript="true" />
</p>
</fieldset>
</form>
</body>
</html>
Элемент управления позаботится как о проверке на стороне клиента, так и на стороне сервера (вы всегда всегда тоже хотите проверить проверку на стороне сервера), так что это может быть самый простой вариантдля вас, или вы можете использовать плагин проверки для клиентской стороны в сочетании с элементом управления CustomValidator
для реализации проверки на стороне сервера.