jQuery validate Plugin add Code для запрещения почтовых адресов без точки [duplicate]

Я нашел здесь здесь :

В Windows (win xp) родительский процесс не завершится до тех пор, пока longtask.py не завершит свою работу. Это не то, что вы хотите в CGI-скрипте. Проблема не специфична для Python, в сообществе PHP проблемы одинаковы.

Решение состоит в том, чтобы передать DETACHED_PROCESS флаг создания процесса в базовую функцию CreateProcess в win API. Если вы установили pywin32, вы можете импортировать флаг из модуля win32process, иначе вы должны определить его самостоятельно:

DETACHED_PROCESS = 0x00000008

pid = subprocess.Popen([sys.executable, "longtask.py"],
                       creationflags=DETACHED_PROCESS).pid

304
задан Robert Koritnik 21 November 2012 в 15:28
поделиться

30 ответов

Функция jQuery для проверки электронной почты

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

 function validateEmail($email) {
  var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
  return emailReg.test( $email );
}

и теперь использовать этот

if( !validateEmail(emailaddress)) { /* do stuff here */ }

Приветствия!

149
ответ дан CalumMcCall 17 August 2018 в 19:46
поделиться
  • 1
    Вы должны просто вернуть emailReg.test($email); – nffdiogosilva 13 November 2013 в 16:02
  • 2
    Просто FYI возвращает true для пустого адреса электронной почты. например emailReg.text("") true. Я бы просто выполнил функцию объявления объявления emailReg, а затем: return ( $email.length > 0 && emailReg.test($email)) – Diziet 9 January 2014 в 18:06
  • 3
    Регулярное выражение для проверки действительности адреса электронной почты устарело, так как теперь у нас есть расширения доменных имен с 6 символами, например .museum, поэтому вы хотите изменить var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; на var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,6})?$/; – Theo 21 February 2014 в 10:31
  • 4
    прямо вы @ h.coates! Я пришел к этой теме, надеясь найти, что у jQuery действительно была встроенная проверка электронной почты. Двигайтесь вперед, это не дроиды, которые вы ищете ... – iGanja 4 April 2014 в 23:16
  • 5
    Точка Тео важна, но фактическая длина ДВУ должна быть больше 6, теоретический верхний предел для расширения - 63 символа. в настоящее время самый длинный из них старше 20 см. data.iana.org/TLD/tlds-alpha-by-domain.txt – Jeroenv3 24 June 2015 в 12:24

Landed here ..... здесь: https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address

... который предоставил следующее regex:

/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

... которое я нашел благодаря примечанию о плагине плагина jQuery Validation: https://github.com/ jzaefferer / jquery-validation / blob / master / README.md # report-an-issue

Итак, обновленная версия @Fabian answer будет:

function IsEmail(email) {
  var regex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
  return regex.test(email);
}

Надеюсь, что помогает

12
ответ дан Community 17 August 2018 в 19:46
поделиться
  • 1
    Это было лучшим ответом для меня - оно вернулось на john..doe@example.com, но хотелось бы, чтобы это было ложным – Knightsy 22 July 2015 в 13:56
  • 2
    Если вы используете это на странице ASP.NET MVC Razor, не забудьте выйти из символа @ с другим символом @. Так же @@, иначе вы получите ошибку сборки. – Rosdi Kasim 13 June 2017 в 17:23
checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com" );

Ссылка: веб-сайт JQUERY UI

2
ответ дан danielad 17 August 2018 в 19:46
поделиться

Выполняет более тщательную проверку, например, он проверяет последовательные точки в имени пользователя, например john..doe @ example.com

function isValidEmail(email)
{
    return /^[a-z0-9]+([-._][a-z0-9]+)*@([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,4}$/.test(email)
        && /^(?=.{1,64}@.{4,64}$)(?=.{6,100}$).*/.test(email);
}

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

8
ответ дан Geek 17 August 2018 в 19:46
поделиться
  • 1
    Ваша ссылка мертва, блог blogspot ушел. – SnowInferno 23 September 2014 в 23:39
  • 2
    Но последовательные точки фактически недействительны? Напротив, я думаю, что вы исключили бы действительные адреса электронной почты, сделав это. – icktoofay 2 November 2014 в 20:28

Очень простое решение - использовать проверку html5:

<form>
  <input type="email" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}">

  <input type="submit">
</form>

http://jsfiddle.net/du676/56/

8
ответ дан iamse7en 17 August 2018 в 19:46
поделиться

Если у вас есть базовая форма, просто введите тип ввода электронной почты: <input type="email" required>

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

some@email.com so@em.co my@fakemail.net

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

FIDDLE EXAMPLE

Это работает в FireFox и Chrome. Возможно, он не работает в Internet Explorer ... Но интернет-исследователь отстой. Итак, вот что ...

7
ответ дан isaac weathers 17 August 2018 в 19:46
поделиться
  • 1
    Метод regexp обычно предотвращает явно глупые электронные письма, такие как a@b.c (что ваш связанный пример JSFiddle позволяет использовать последний Chrome), поэтому решение HTML5 явно является неадекватным решением. – SnowInferno 23 September 2014 в 23:45
  • 2
    круто. Итак, как насчет только использования соответствия шаблону, такого как HTML5, является «предполагаемым»? делать? Почему бы вам не попробовать это в своем хромонике: jsfiddle.net/du676/8 – isaac weathers 26 September 2014 в 05:00
function validateEmail(emailaddress){  
   var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;  
   if(!emailReg.test(emailaddress)) {  
        alert("Please enter valid email id");
   }       
}
5
ответ дан JAB 17 August 2018 в 19:46
поделиться
function isValidEmail(emailText) {
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
    return pattern.test(emailText);
};

Использовать как это:

if( !isValidEmail(myEmail) ) { /* do things if myEmail is valid. */ }
6
ответ дан JayKandari 17 August 2018 в 19:46
поделиться

Посмотрите на http: //bassistance.de/jquery-plugins/jquery-plugin-validation/. Это приятный плагин jQuery, который позволяет создавать мощную систему валидации для форм. Здесь есть несколько полезных примеров. Таким образом, проверка поля электронной почты в форме будет выглядеть так:

$("#myform").validate({
  rules: {
    field: {
      required: true,
      email: true
    }
  }
});

Подробнее см. Документация по электронной почте .

29
ответ дан Menuka Ishan 17 August 2018 в 19:46
поделиться

Я хотел бы использовать плагин проверки jQuery по нескольким причинам.

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

Кроме того, еще одно огромное преимущество - это размещение на CDN, текущая версия на момент ответа может быть найденный здесь: http://www.asp.net/ajaxLibrary/CDNjQueryValidate16.ashx Это означает более быстрое время загрузки для клиента.

39
ответ дан Nick Craver 17 August 2018 в 19:46
поделиться
  • 1
    Хорошо ... нет необходимости изобретать велосипед. Но почему мне нужно установить десятки килобайт Javascript для проверки поля. Это похоже на строительство автозавода, если вам нужно новое колесо :) – kraftb 25 February 2014 в 17:49
  • 2
    @kraftb Как указано в моем ответе, это обработка и отображение вокруг проверки, а не просто проверка самого текста. – Nick Craver♦ 25 February 2014 в 18:01
  • 3
    Спасибо за это @NickCraver: Это действительно выглядит как «лучшая практика». подход к проблеме обработки валидации для электронной почты. Это, безусловно, НЕ похоже на создание фабрики (создание библиотек для выполнения всей работы), чтобы получить колесо. Это походит на инструкции от завода, чтобы установить колесо на современном автомобиле (поднять машину вверх, поместить колесо - надеть гайки), вместо того, чтобы пытаться выяснить, как получить колесо вагона на вашем автомобиле. Этот плагин очень прост в использовании. Чтобы выполнить проверку формы, это буквально включение, некоторые аннотации и один вызов метода. – jfgrissom 30 July 2014 в 19:30
  • 4
    Теперь вы изобретаете метафору «изобретать колесо»! – Dom Vinyard 10 August 2015 в 09:48
  • 5
    Для людей, работающих с веб-приложениями encosia.com/using-jquery-validation-with-asp-net-webforms – Jerreck 29 January 2016 в 01:41
<script type = "text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type = "text/javascript">
    function ValidateEmail(email) {
        var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        return expr.test(email);
    };
    $("#btnValidate").live("click", function () {
        if (!ValidateEmail($("#txtEmail").val())) {
            alert("Invalid email address.");
        }
        else {
            alert("Valid email address.");
        }
    });
</script>
<input type = "text" id = "txtEmail" />
<input type = "button" id = "btnValidate" value = "Validate" />
4
ответ дан Pritam 17 August 2018 в 19:46
поделиться

Я бы порекомендовал Verimail.js , у него также есть плагин JQuery .

Почему? Verimail поддерживает следующее:

  • Проверка синтаксиса (согласно RFC 822)
  • Проверка IANA TLD
  • Предложение правописания для наиболее распространенных доменов домена и электронной почты
  • Запретить временные домены электронной почты электронной почты, такие как mailinator.com

. Кроме проверки, Verimail.js также дает вам предложения. Поэтому, если вы вводите электронное письмо с неправильным доменом или доменом, который очень похож на общий домен электронной почты (hotmail.com, gmail.com и т. Д.), Он может обнаружить это и предложить исправление.

Примеры :

  • test@gnail.con -> Вы имели в виду test@gmail.com?
  • test@hey.nwt -> Имели ли вы в виду test@hey.net?
  • test@hottmail.com -> Вы имели в виду test@hotmail.com?

И так далее ..

Чтобы использовать его с jQuery, просто включите verimail.jquery.js на свой сайт и запустите следующую функцию:

$("input#email-address").verimail({
    messageElement: "p#status-message"
});

Элемент сообщения - это элемент, в котором будет показано сообщение. Это может быть все, от «Недопустимый адрес электронной почты» на «Вы имели в виду ...?».

Если у вас есть форма и вы хотите ограничить ее, чтобы она не могла быть отправлена, если только сообщение недействительно, вы можете проверить статус с помощью функции getVerimailStatus, как показано ниже:

if($("input#email-address").getVerimailStatus() < 0){
    // Invalid
}else{
    // Valid
}

Эта функция возвращает целочисленный код состояния в соответствии с объектом Comfirm.AlphaMail.Verimail.Status. Но общее правило состоит в том, что любые коды ниже 0 являются кодами, указывающими ошибки.

13
ответ дан Robin Orheden 17 August 2018 в 19:46
поделиться
  • 1
    .getVerimailStatus() не возвращает числовые коды состояния, просто строковое значение success, error или, возможно, pending (не проверял последний). – Niko Nyman 20 April 2014 в 21:26

Вы можете использовать обычный старый javascript для этого:

function isEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return regex.test(email);
}
611
ответ дан Sam Leach 17 August 2018 в 19:46
поделиться
  • 1
    будет ли это работать, если я поместил его в свой сценарий JQuery? – DuH 24 March 2010 в 12:02
  • 2
    Да, это будет, помните, jQuery по-прежнему javascript :) – Fabian 24 March 2010 в 12:03
  • 3
    Несмотря на то, что это регулярное выражение считает действительные реальные адреса мира, у него все еще есть много ложных срабатываний и ложных негативов. Например, см. примеры действительных и недопустимых адресов электронной почты в Википедии. – Arseny 29 October 2012 в 03:50
  • 4
    @Umingo email@127.0.0.1 по-прежнему действует по электронной почте, однако он все же может быть написан лучше. Ни одна часть домена не может начинаться с другого символа, чем [a-z0-9] (без учета регистра). Кроме того, действительный адрес электронной почты (и домен) имеет некоторый лимит, который также не проверяется. – tomis 5 July 2013 в 09:42
  • 5
    С появлением новых доменов верхнего уровня это регулярное выражение может нуждаться в модификации .systems и .poker и т. Д., Теперь все действующие TLD, но не проведут проверку регулярного выражения – Liath 5 September 2014 в 08:35

Для thoose, которые хотят использовать улучшенное поддерживаемое решение , чем подрывные матчи RegEx Lightyear-long, я написал несколько строк кода. Thoose, который хочет сохранить байты, придерживаться варианта RegEx:)

Это ограничивает:

  • Нет @ в строке
  • Нет точки в строке
  • Более 2 точек после @
  • Плохие символы в имени пользователя (до @)
  • Более 2 @ в строке
  • Плохие символы в домене
  • Плохие символы в субдомене
  • Плохие символы в TLD
  • TLD - адреса

В любом случае, это возможно

Здесь находится JSFiddle

 //validate email

var emailInput = $("#email").val(),
    emailParts = emailInput.split('@'),
    text = 'Enter a valid e-mail address!';

//at least one @, catches error
if (emailParts[1] == null || emailParts[1] == "" || emailParts[1] == undefined) { 

    yourErrorFunc(text);

} else {

    //split domain, subdomain and tld if existent
    var emailDomainParts = emailParts[1].split('.');

    //at least one . (dot), catches error
    if (emailDomainParts[1] == null || emailDomainParts[1] == "" || emailDomainParts[1] == undefined) { 

        yourErrorFunc(text); 

     } else {

        //more than 2 . (dots) in emailParts[1]
        if (!emailDomainParts[3] == null || !emailDomainParts[3] == "" || !emailDomainParts[3] == undefined) { 

            yourErrorFunc(text); 

        } else {

            //email user
            if (/[^a-z0-9!#$%&'*+-/=?^_`{|}~]/i.test(emailParts[0])) {

               yourErrorFunc(text);

            } else {

                //double @
                if (!emailParts[2] == null || !emailParts[2] == "" || !emailParts[2] == undefined) { 

                        yourErrorFunc(text); 

                } else {

                     //domain
                     if (/[^a-z0-9-]/i.test(emailDomainParts[0])) {

                         yourErrorFunc(text); 

                     } else {

                         //check for subdomain
                         if (emailDomainParts[2] == null || emailDomainParts[2] == "" || emailDomainParts[2] == undefined) { 

                             //TLD
                             if (/[^a-z]/i.test(emailDomainParts[1])) {

                                 yourErrorFunc(text);

                              } else {

                                 yourPassedFunc(); 

                              }

                        } else {

                             //subdomain
                             if (/[^a-z0-9-]/i.test(emailDomainParts[1])) {

                                 yourErrorFunc(text); 

                             } else {

                                  //TLD
                                  if (/[^a-z]/i.test(emailDomainParts[2])) {

                                      yourErrorFunc(text); 

                                  } else {

                                      yourPassedFunc();
}}}}}}}}}
, чтобы проверить,
3
ответ дан SEsterbauer 17 August 2018 в 19:46
поделиться

<!-- Dont forget to include the jQuery library here -->
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">

$(document).ready(function() {

    $("#validate").keyup(function(){

        var email = $("#validate").val();

        if(email != 0)
        {
            if(isValidEmailAddress(email))
            {
                $("#validEmail").css({
                    "background-image": "url('validYes.png')"
                });
            } else {
                $("#validEmail").css({
                    "background-image": "url('validNo.png')"
                });
            }
        } else {
            $("#validEmail").css({
                "background-image": "none"
            });         
        }

    });

});

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[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);
    return pattern.test(emailAddress);
}

</script>

<style>
    #validEmail
    {
        margin-top: 4px;
        margin-left: 9px;
        position: absolute;
        width: 16px;
        height: 16px;
    }

    .text
    {
        font-family: Arial, Tahoma, Helvetica;
    }
</style>

    <title>Live Email Validation with jQuery Demo</title>
</head>
<body>
    <div class="text"><h1>Reynoldsftw.com - Live Email Validation</h1><h2>Type in an email address in the box below:</h2></div>
    <div><input type="text" id="validate" width="30"><span id="validEmail"></span></div>
    <div class="text"><P>More script and css style

: www.htmldrive.net


Источник: htmldrive.com

14
ответ дан SwatiKothari 17 August 2018 в 19:46
поделиться

используйте этот параметр

if ($this.hasClass('tb-email')) {
    var email = $this.val();
    var txt = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!txt.test(email)) {
        e.preventDefault();
        $this.addClass('error');
    } else {
        $this.removeClass('error');
    }
}
3
ответ дан user1690588 17 August 2018 в 19:46
поделиться
<script type="text/javascript">
    $(document).ready(function() {
      $('.form_error').hide();
      $('#submit').click(function(){
           var name = $('#name').val();
           var email = $('#email').val();
           var phone = $('#phone').val();
           var message = $('#message').val();
           if(name== ''){
              $('#name').next().show();
              return false;
            }
            if(email== ''){
               $('#email').next().show();
               return false;
            }
            if(IsEmail(email)==false){
                $('#invalid_email').show();
                return false;
            }

            if(phone== ''){
                $('#phone').next().show();
                return false;
            }
            if(message== ''){
                $('#message').next().show();
                return false;
            }
            //ajax call php page
            $.post("send.php", $("#contactform").serialize(),  function(response) {
            $('#contactform').fadeOut('slow',function(){
                $('#success').html(response);
                $('#success').fadeIn('slow');
               });
             });
             return false;
          });
      });
      function IsEmail(email) {
        var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if(!regex.test(email)) {
           return false;
        }else{
           return true;
        }
      }
  </script>

<form action="" method="post" id="contactform">
                            <table class="contact-table">
                              <tr>
                                <td><label for="name">Name :</label></td>
                                <td class="name"> <input name="name" id="name" type="text" placeholder="Please enter your name" class="contact-input"><span class="form_error">Please enter your name</span></td>
                              </tr>
                              <tr>
                                <td><label for="email">Email :</label></td>
                                <td class="email"><input name="email" id="email" type="text" placeholder="Please enter your email" class="contact-input"><span class="form_error">Please enter your email</span>
                                  <span class="form_error" id="invalid_email">This email is not valid</span></td>
                              </tr>
                              <tr>
                                <td><label for="phone">Phone :</label></td>
                                <td class="phone"><input name="phone" id="phone" type="text" placeholder="Please enter your phone" class="contact-input"><span class="form_error">Please enter your phone</span></td>
                              </tr>
                              <tr>
                                <td><label for="message">Message :</label></td>
                                <td class="message"><textarea name="message" id="message" class="contact-input"></textarea><span class="form_error">Please enter your message</span></td>
                              </tr>
                              <tr>
                                <td></td>
                                <td>
                                  <input type="submit" class="contactform-buttons" id="submit"value="Send" />
                                  <input type="reset" class="contactform-buttons" id="" value="Clear" />
                                </td>
                              </tr>
                            </table>
     </form>
     <div id="success" style="color:red;"></div>
12
ответ дан user1993920 17 August 2018 в 19:46
поделиться

Еще один простой и полный вариант:

<input type="text" id="Email"/>
<div id="ClasSpan"></div>   
<input id="ValidMail" type="submit"  value="Valid"/>  


function IsEmail(email) {
    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return regex.test(email);
}

$("#ValidMail").click(function () {
    $('span', '#ClasSpan').empty().remove();
    if (IsEmail($("#Email").val())) {
        //aqui mi sentencia        
    }
    else {
        $('#ClasSpan').append('<span>Please enter a valid email</span>');
        $('#Email').keypress(function () {
            $('span', '#itemspan').empty().remove();
        });
    }
});
2
ответ дан Anders 17 August 2018 в 19:46
поделиться
  • 1
    Stack Overflow - это сайт на английском языке. Пожалуйста, не публикуйте контент на других языках. – Anders 30 September 2015 в 07:15

Как уже упоминалось выше, этот вопрос достаточно хорош, если вы спросите меня.

var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;

Но если вы не хотите, чтобы конец домена (.com, .nu, .net и т. д.) содержал числа (это мой предпочтительный выбор), отредактированная версия:

var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z]{2,4})+$/;
0
ответ дан anoraq 17 August 2018 в 19:46
поделиться

Это регулярное выражение предотвращает дублирование доменных имен, таких как abc@abc.com.com.com.com, это позволит использовать только домен в два раза, например abc@abc.co.in. Он также не позволяет statring от числа, такого как 123abc@abc.com

 regexp: /^([a-zA-Z])+([a-zA-Z0-9_.+-])+\@(([a-zA-Z])+\.+?(com|co|in|org|net|edu|info|gov|vekomy))\.?(com|co|in|org|net|edu|info|gov)?$/, 

All The Best !!!!!

1
ответ дан Brijeshkumar 17 August 2018 в 19:46
поделиться

вы должны увидеть это: jquery.validate.js , добавить его в свой проект

, используя его следующим образом:

<input id='email' name='email' class='required email'/>
2
ответ дан Chuanshi Liu 17 August 2018 в 19:46
поделиться
if($("input#email-address").getVerimailStatus() < 0) { 

(incorrect code)

}

if($("input#email-address").getVerimailStatus() == 'error') { 

(right code)

}
1
ответ дан Code Lღver 17 August 2018 в 19:46
поделиться
  • 1
    Вы можете уточнить свой ответ ... например, вы должны упомянуть, что getVerimailStatus - дополнительный плагин. – DaveHogan 27 October 2012 в 10:43

Ошибка в Jquery Validation Validation Plugin Only проверяет, что @ для изменения этого параметра

изменит код на этот

email: function( value, element ) {
    // From http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#e-mail-state-%28type=email%29
    // Retrieved 2014-01-14
    // If you have a problem with this implementation, report a bug against the above spec
    // Or use custom methods to implement your own email validation
    return this.optional( element ) || /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test( value );
}
1
ответ дан ernd enson 17 August 2018 в 19:46
поделиться

Используйте jquery.validate.js , у него есть Microsoft ajax CDN.

$('#form').validate({
    rules:{
        "name":{
            required:true,
            maxlength:40
        },

        "email":{
            required:true,
            email:true, //for validate email
            maxlength:100
        },

        "message":{
            required:true
        }
    }
});
0
ответ дан Frits 17 August 2018 в 19:46
поделиться

Вы можете использовать jQuery Validation , и в одной строке HTML вы можете проверить подтверждение электронной почты и подтверждение электронной почты: type="email" required data-msg-email="Enter a valid email account!"

Вы можете использовать данные, msg-email для размещения персонализированного сообщения или иным образом не размещать этот параметр, и будет отображаться сообщение по умолчанию: «Введите правильный адрес электронной почты».

Полный пример:

<form class="cmxform" id="commentForm" method="get" action="">
  <fieldset>
    <p>
      <label for="cemail">E-Mail (required)</label>
      <input id="cemail" type="email" name="email" required data-msg-email="Enter a valid email account!">
    </p>
    <p>
      <input class="submit" type="submit" value="Submit">
    </p>
  </fieldset>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery-validation@1.17.0/dist/jquery.validate.js"></script>
<script>
$("#commentForm").validate();
</script>
1
ответ дан gras 17 August 2018 в 19:46
поделиться

Упрощенный, который я только что сделал, делает то, что мне нужно. Ограничили его только буквенно-цифровым, периодом, подчеркиванием и @.

<input onKeyUp="testEmailChars(this);"><span id="a"></span>
function testEmailChars(el){
    var email = $(el).val();
    if ( /^[a-zA-Z0-9_@.-]+$/.test(email)==true ){
        $("#a").html("valid");
    } else {
        $("#a").html("not valid");
    }
}

Сделано с помощью других пользователей

1
ответ дан nathan 17 August 2018 в 19:46
поделиться

Проверять электронную почту во время ввода, с управлением состоянием кнопки.

$("#email").on("input", function(){
    var email = $("#email").val();
    var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    if (!filter.test(email)) {
      $(".invalid-email:empty").append("Invalid Email Address");
      $("#submit").attr("disabled", true);
    } else {
      $("#submit").attr("disabled", false);
      $(".invalid-email").empty();
    }
  });
1
ответ дан Radovan Skendzic 17 August 2018 в 19:46
поделиться

Проверка правильности Javascript в MVC / ASP.NET

Проблема, с которой я сталкивался при использовании ответа Фабиана, реализует ее в представлении MVC из-за символа Razor @. Вы должны включить дополнительный символ @, чтобы избежать его: @@

Избегать бритвы в MVC

function isEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return regex.test(email);
}

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

EDIT

Вот ссылка из Microsoft, описывающая ее использование. Я просто проверил код выше и получил следующие js:

function validateEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
  return regex.test(email);
}

Что делает именно то, что он должен делать.

2
ответ дан Trevor Nestman 17 August 2018 в 19:46
поделиться
  • 1
    Кажется, не работает. – nbrogi 6 February 2017 в 14:42
  • 2
    @nbrogi Что значит это не работает? Я просто проверил это снова, и это приводит к следующим js var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; Что происходит с вашим кодом? – Trevor Nestman 6 February 2017 в 16:45
  • 3
    Извините, я не уверен в данный момент, я полностью изменил его. – nbrogi 6 February 2017 в 21:16
  • 4
    Пожалуйста, дайте мне знать, когда сможете. Если это плохая информация, я сниму ее. Я стараюсь предоставлять полезную информацию, когда это возможно, и это помогло мне при написании регулярного выражения в представлении MVC. – Trevor Nestman 6 February 2017 в 21:20
  • 5
    Опять же, я хотел бы знать, почему это было приостановлено. Он делает именно то, что я хочу, для которого создается символ @ в регулярном выражении в .cshtml. Обычно он будет рассматривать все после символа @ как код бритвы, но двойной @@ предотвращает это. – Trevor Nestman 7 February 2017 в 16:33

Вы можете создать свою собственную функцию

function emailValidate(email){
    var check = "" + email;
    if((check.search('@')>=0)&&(check.search(/\./)>=0))
        if(check.search('@')<check.split('@')[1].search(/\./)+check.search('@')) return true;
        else return false;
    else return false;
}

alert(emailValidate('your.email@yahoo.com'));
1
ответ дан Wahid Masud 17 August 2018 в 19:46
поделиться

function isValidEmailAddress(emailAddress) {
    var pattern = /^([a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+(\.[a-z\d!#$%&'*+\-\/=?^_`{|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)*|"((([ \t]*\r\n)?[ \t]+)?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(([ \t]*\r\n)?[ \t]+)?")@(([a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\d\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.)+([a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d\-._~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\.?$/i;
    return pattern.test(emailAddress);
};

if( !isValidEmailAddress( emailaddress ) ) { /* do stuff here (email is invalid) */ }

это было предоставлено пользователем Luca Filosofi в этом ответе этот ответ

12
ответ дан Community 17 August 2018 в 19:46
поделиться
  • 1
    Если вы используете это на странице ASP.NET MVC Razor, не забудьте выйти из символа @ с другим символом @. Так же @@, иначе вы получите ошибку сборки. – Rosdi Kasim 13 June 2017 в 17:23
Другие вопросы по тегам:

Похожие вопросы: