2013-11-08 5 views
1

Я использую элемент проверки asp.net для проверки адресов электронной почты. Возникла проблема с адресом электронной почты, поскольку она имеет следующие символы. "-". Например, адрес электронной почты w.-a.wsdf.com не будет проверяться из-за «.-» в нем. Я искал стандарты электронной почты, которые запрещали это, но не могли найти их. Должен ли я изменить регулярное выражение asp.net на пользовательский, чтобы разрешить это или это не действительный адрес электронной почты?Проверка адреса электронной почты. Действительно ли это?

Регулярное выражение я использую сейчас: \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

+0

Просто интересно, если вы не проверить? – JNL

+0

См. Также этот вопрос (из раздела «Родственные»): http://stackoverflow.com/q/201323/121309 –

ответ

0

Вы получите кучу ответов на это. Это один всегда хорошо служил мне:

/\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i 

Первоначально нашел его в Rails книге Майкла Hartl в

+0

Не поддерживает цитируемые строки, как в «быстрой коричневой лисице» @ example.com - см. Http : //cobisi.com/email-validation/.net-component/features/syntax-validation#quoted-strings –

0
^[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]$ 
+0

Пожалуйста, добавьте описание того, что делает выражение, и ссылайтесь на его источник (если есть). –

+0

Не работает даже для примера x @.com и позволяет [email protected], что является недопустимым ... –

0

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

Основываясь на моем опыте, я хотел бы предложить либо:

  • придерживаться простейшей проверки регулярных выражений электронной почты, ^[email protected]+$ и отправить по электронной почте подтверждение с ссылкой для активации;

или

  • избежать с помощью регулярных выражений на все и использовать библиотеку как и мой EmailVerify for .NET, который выставляет обычай, отлично настроенные конечный автомат для проверки адреса электронной почты в соответствии с (всех) рабочего связанных с IETF, плюс одноразовые, DNS, SMTP, тесты почтовых ящиков.

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

Отказ от ответственности: Я являюсь техническим руководителем EmailVerify для .NET, компонента Microsoft .NET для validating email addresses.

0

Регулярное выражение ниже запрещает w.-a.wsdf.com

using System.Text.RegularExpressions; 

public static bool IsValidEmail(string email) 
{ 
    return Regex.IsMatch(email, @"\A[a-z0-9]+([-._][a-z0-9]+)*@([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,4}\z") 
     && Regex.IsMatch(email, @"^(?=.{1,64}@.{4,64}$)(?=.{6,100}$).*"); 
} 

См validate email address using regular expression in C#.

0

Возьмите ввод текста в HTML и вход кнопки, как этот Теперь, когда кнопка нажата, то функция SubmitFunction JavaScript() будет вызываться. Теперь напишите следующий код в этой функции.

 


function checkEmail() { 

    var email = document.getElementById('txtEmail'); 
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

    if (!filter.test(email.value)) { 
    alert('Please provide a valid email address'); 
    email.focus; 
    return false; 
} 
}

* его работы *

Смежные вопросы