Кто-либо может исправить выражение ниже к также не, позволяют пустое поле?
<asp:RegularExpressionValidator ID="expEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="valid email address required" ValidationExpression="^([a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]){1,70}$"></asp:RegularExpressionValidator>
Добавить обязательный валидатор поля а также - я думаю, что валидатор регулярных выражений сработает только в том случае, если в поле есть текст, на который можно посмотреть.
Вам необходимо использовать дополнительный валидатор - asp: RequiredFieldValidator
<asp:RequiredFieldValidator runat="server" ControlToValidate="txtEmail" ErrorMessage="Message!" />
Любой из валидаторов ASP.NET 2.0 на основе BaseValidator
(кроме самого RequiredFieldValidator, конечно) не проверяет указанное поле на быть пустым.
Между прочим, чтобы настроить UserControl
для проверки с помощью таких валидаторов, используйте
[System.Web.UI.ValidationProperty("PropertyName")]
Другой вариант - использовать .net CustomValidator , установить его ValidateEmptyText на True , а для проверки адреса электронной почты вы можете использовать функцию JavaScript, которая будет указана в свойстве ClientValidationFunction валидатора.
Если вы хотите обрабатывать это поле как обязательное, тогда лучше перейдите на RequiredFieldValidator.
<asp:RequiredFieldValidator ID="reqEmail" ControlToValidate="txtEmail" runat="server" ErrorMessage="Email address required"></asp:RequiredFieldValidator>
Спасибо,
Не могли бы вы сделать что-то вроде
if (txtEmail.Text.Trim().length > 0) then
validate
? Я думаю, что, поскольку регулярные выражения довольно сложны, все, что можно сделать вне регулярного выражения, должно быть выполнено вне регулярного выражения это должно сделать код более читабельным, но это только я.
Ваше регулярное выражение довольно сложное, здесь вы должны найти более простое. В любом случае, вы можете сделать что-то вроде этого: ^ (regex) {1} $
Одним из решений (не самым лучшим) является применение регулярного выражения:
^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$
Пример: someone@example.com
Но на самом деле, очень сложно написать и поддерживать хорошее регулярное выражение для проверки электронной почты. Вы не должны на 100% доверять вашему regex. В Интернете можно найти несколько статей об этой сложности: