Проверьте правильность введенного адреса электронной почты - PullRequest
8 голосов
/ 06 декабря 2011

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

Прямо сейчас я в этой точке

var email = $("input#sc_email").val();  
if (email == "") {                
    // If e-mail field is empty do nothing
} else {                          
     // If something was entered
    // [CODE HERE] Check if valid e-mail was entered, if not show error message
    $("label#email_error").show(); //error message
    $("input#sc_email").focus();   //focus on email field
    return false;  
} 

Я даже не уверен, правильно ли это, но я думаю, что это так. Сейчас мне нужна помощь с пробелами в коде, я пометил их как [CODE HERE]. Может кто-нибудь предложить решение, пожалуйста.

Ответы [ 3 ]

18 голосов
/ 06 декабря 2011

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

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

var email = $("input#sc_email").val();  

if (email !== "") {  // If something was entered
    if (!isValidEmailAddress(email)) {
        $("label#email_error").show(); //error message
        $("input#sc_email").focus();   //focus on email field
        return false;  
    }
} 

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][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
};
2 голосов
/ 06 декабря 2011

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

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA
-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}

Это, однако, только подтвердит, что это строка в формате действительного адреса электронной почты.flibble@flobble.com будет действительным , даже если никто не имеет этого адреса электронной почты.

Посмотрите на этот вопрос .

1 голос
/ 27 июня 2015

Я бы порекомендовал валидацию как на стороне клиента, так и на стороне сервера, вы можете просто использовать этот код:

alert(/\S+@\S+\.\S+/.test('asdasd@asdasd@asdd.com'));
alert(/\S+@\S+\.\S+/.test('asdasd234@asdd.com'));

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...