2013-02-21 2 views
1

Я делаю регистрационную форму, где люди могут зарегистрироваться, в том, что я буду просить Thier адрес электронной почты, если я мог бы поставить regex проверку, которая фиксирует любые другие сообщенияПользовательские Email Validation на ASP.NET C#

пример :

[email protected] или ххх @ yahoo.com, и только позволяют [email protected] я мог внедрить систему, которая отправляет электронное письмо регистрирующему лицу с просьбой подтвердить его. Я знаю, как реализовать бит электронной почты, который я просто застрял в этой части проверки. надеюсь, что это имеет смысл

Есть ли способ изменить выражение проверки электронной почты по умолчанию

\ ш + ([-. + '] \ W +) @ \ W + ([-.] \ W +). \ w + ([-.] \ w +) *

+1

Это ASP.NET MVC или веб-формы? –

+0

В Интернете есть кучи регулярных выражений проверки подлинности электронной почты. Просто Google для них. –

+0

вы не можете проверять электронные письма с помощью regex.there слишком много угловых случаев, где это может терпеть неудачу .. использовать '. * @. *' .. – Anirudha

ответ

0

Я хотел бы использовать встроенный атрибут для проверки адреса электронной почты, а затем в дополнении к этому, проверьте с этим регулярным выражением:

@bat.ac.uk$ 

Тогда вы знаете, что это действительный адрес электронной почты и содержит то, что вы ищете. Валидация для электронной почты очень сложная, и я бы не советовал ее переписывать, поэтому просто проверяйте две разные вещи.

Email атрибут Адрес: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.emailaddressattribute.aspx

+0

, как бы вы могли реализовать это? я попробовал обычную проверку, чтобы проверить, действительно ли адрес электронной почты является действительным, и на другой пользовательской проверке я вставлял то, что сказал в регулярном выражении, но это не сработало, если вы можете мне помочь, поскольку я застрял на этом, не имея возможности перейти к следующему этапу моего развития этой веб-формы – Suits999

0

Я рекомендую использовать валидатор по умолчанию для проверки почты, является допустимым и добавляет CustomValidator, реализующий проверку как стороны CLIENT, так и стороны сервера.

здесь вы можете проверить расширения и выполнить необходимую логику.

+0

Наконец-то нашел ответ на этот вопрос, спасибо за помощь в любом случае все] \ w + ([- +.] \ w +) * @ bat.ac.uk Это сделало работу для меня – Suits999

1

Если это ASP.NET Web Forms, то вы можете использовать RegularExpressionValidator, чтобы сделать работу.

<asp:RegularExpressionValidator ID="SomeID" 
    runat="server" 
    ControlToValidate="TheControlIDToValidate" 
    ErrorMessage="An error message you want to display." 
    ValidationExpression="\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*" 
    EnableClientScript="true" /> 

Это подтвердит ценность клиентской стороны с использованием JavaScript. Тем не менее, она может быть преодолена, если JavaScript не включен, так на стороне сервера вам нужно сделать использовать Regex класс:

Regex rgx = new Regex(@"\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*", RegexOptions.IgnoreCase); 
MatchCollection matches = rgx.Matches(input); 

тогда, если matches.Count > 0 вы хорошо.


Однако, если это ASP.NET MVC вы можете использовать аннотацию RegularExpression данных. Вы просто добавляете атрибут свойства в свою модель:

[RegularExpression(@"\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*", "Some error message.")] 
public string EmailAddress { get; set; }