Email регулярное выражение проверки Javascript - PullRequest
2 голосов
/ 15 августа 2011

Я понимаю проблемы с проверкой электронной почты, но мне интересно, не заблокирует ли это кого-нибудь, у кого есть допустимый адрес электронной почты.

Я искал список действительных сообщений, чтобы проверить его сам, но не нашел.

У кого-нибудь есть действительное письмо, но это регулярное выражение считает, что это не так?

emailRegex.test('Emailing@domain.aero')

Очень длинная строка:

emailRegex = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.(([a-z]{2}|AERO|ARPA|ASIA|BIZ|CAT|COM|COOP|EDU|GOV|INFO|INT|JOBS|MIL|MOBI|MUSEUM|NAME|NET|ORG|PRO|TEL|TRAVEL|XN--0ZWM56D|XN--11B5BS3A9AJ6G|XN--3E0B707E|XN--45BRJ9C|XN--80AKHBYKNJ4F|XN--90A3AC|XN--9T4B11YI5A|XN--CLCHC0EA0B2G2A9GCD|XN--DEBA0AD|XN--FIQS8S|XN--FIQZ9S|XN--FPCRJ9C3D|XN--FZC2C9E2C|XN--G6W251D|XN--GECRJ9C|XN--H2BRJ9C|XN--HGBK6AJ7F53BBA|XN--HLCJ6AYA9ESC7A|XN--J6W193G|XN--JXALPDLP|XN--KGBECHTV|XN--KPRW13D|XN--KPRY57D|XN--LGBBAT1AD8J|XN--MGBAAM7A8H|XN--MGBAYH7GPA|XN--MGBBH1A71E|XN--MGBC0A9AZCG|XN--MGBERP4A5D4AR|XN--O3CW4H|XN--OGBPF8FL|XN--P1AI|XN--PGBS0DH|XN--S9BRJ9C|XN--WGBH1C|XN--WGBL6A|XN--XKC2AL3HYE2A|XN--XKC2DL3A5EE0H|XN--YFRO4I67O|XN--YGBI2AMMX|XN--ZCKZAH|XXX)(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)|(^$)/i;

Ответы [ 3 ]

5 голосов
/ 15 августа 2011

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

Действительный адрес test@[IPv6:::], "test\ test"@iana.org или "test@io" не принимаются вашим регулярным выражением.

0 голосов
/ 08 октября 2013

Вот код для поля ввода html и поля кнопки

<input input type="text" name="txtEmailId" id="txtEmailId" /> 
   <input type="submit" class="button" value="Suscribe" name="Suscribe" 
            onclick="javascript:ShowAlert()" />

Теперь добавьте указанную ниже функцию в заголовок вашей страницы

<script type="text/javascript">
 function ShowAlert() {
  var email = document.getElementById('txtEmailId');
  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;
    }
    else {
        alert("Thanks for your intrest in us, Now you 
        will be able to receive monthly updates from us.");
        document.getElementById('txtEmailId').value = "";
    }
 }
 </script> 

Здесь вы можете найти статью наэто подтверждение электронной почты в JavaScript

0 голосов
/ 15 августа 2011

Это прекрасное выражение, но скоро его отправят в сферу устаревания:

http://www.icann.org/en/topics/new-gtld-program.htm

Глобальные домены верхнего уровня (yourbestfriend@worksfor.coke) приближаются, и ониЯ сломаю все наши скрипты через несколько лет:)

Хотя, чтобы ответить на ваш вопрос, нет, я не смог разорвать вашу проверку электронной почты с использованием сегодняшнего конечного ограничения на «действительные» доменные расширения.

...