电子邮件正则表达式允许验证空格

问题描述:

好的,所以我需要一个带有Javascript的电子邮件验证程序。所以,我使用了这个* answer的代码。问题涉及在之后放置一个空间您的电子邮件地址。如果我输入[email protected],则不会发生任何错误。如果我输入[email protected],请注意最后添加的空间,电子邮件地址被证明无效。人们犯错误和增加的空间不应该认为电子邮件地址无效。我该如何解决这个问题?电子邮件正则表达式允许验证空格

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

'变种的电子邮件= $( “#电子邮件”)VAL()修剪();'就足够。请参见[答案](http://*.com/a/3000900/5781248) –

你需要添加\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>