2016-07-08 3 views
-2

Итак, мне нужен был валидатор электронной почты с Javascript. Итак, я использовал код из этого StackOverflow answer. Проблема состоит в том, чтобы положить после ваш адрес электронной почты. Если я войду в [email protected], ничего плохого не произойдет. Если я введу [email protected], обратите внимание на добавленное пространство в конце, адрес электронной почты окажется недействительным. Люди делают ошибки, а добавленное пространство не должно считаться неправильным адресом электронной почты. Как я могу это исправить ...Email regex разрешает пробелы в валидации

function validateEmail(email) { 
 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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); 
 
} 
 

 
function validate() { 
 
    $("#result").text(""); 
 
    var email = $("#email").val(); 
 
    if (validateEmail(email)) { 
 
    $("#result").text(email + " is valid :)"); 
 
    $("#result").css("color", "green"); 
 
    } else { 
 
    $("#result").text(email + " is not valid :("); 
 
    $("#result").css("color", "red"); 
 
    } 
 
    return false; 
 
} 
 

 
$("form").bind("submit", validate);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form> 
 
    <p>Enter an email address:</p> 
 
    <input id='email'> 
 
    <button type='submit' id='validate'>Validate!</button> 
 
</form> 
 

 
<h2 id='result'></h2>

+0

'вар электронной почты = $ ("# почта") Вал() отделка();' может быть достаточно... См. [Ответ] (http://stackoverflow.com/a/3000900/5781248) –

ответ

0

Вам нужно добавить \s*. Характер \s будет просто соответствовать один белый символ пробела и * будет соответствовать его 0 - N-ое раз.

Вы хотите разместить это после /^(...{2,})) ***insert \s* here *** $/;

Вот полная обновленная линейка:

function validateEmail(email) { 
    var re = /^\s*(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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,}))\s*$/; 

function validateEmail(email) { 
 
    var re = /^\s*(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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,}))\s*$/; 
 
    return re.test(email); 
 
} 
 

 
function validate() { 
 
    $("#result").text(""); 
 
    var email = $("#email").val(); 
 
    if (validateEmail(email)) { 
 
    $("#result").text(email + " is valid :)"); 
 
    $("#result").css("color", "green"); 
 
    } else { 
 
    $("#result").text(email + " is not valid :("); 
 
    $("#result").css("color", "red"); 
 
    } 
 
    return false; 
 
} 
 

 
$("form").bind("submit", validate);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form> 
 
    <p>Enter an email address:</p> 
 
    <input id='email'> 
 
    <button type='submit' id='validate'>Validate!</button> 
 
</form> 
 

 
<h2 id='result'></h2>

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