Javascript 需要电子邮件验证而不需要

Javascript 需要电子邮件验证而不需要,javascript,validation,email,Javascript,Validation,Email,我使用以下代码进行电子邮件验证。它运行良好,但我不想在字段为空时验证它 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})(\]?)$/; var sEmail = $(this).val(); if (!filter.test(sEmail)) { value = false;

我使用以下代码进行电子邮件验证。它运行良好,但我不想在字段为空时验证它

    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})(\]?)$/;
    var sEmail = $(this).val();

    if (!filter.test(sEmail)) {
        value = false;
        $(this).css('border', '1px solid red');
        $(this).attr('error','true');
    }else{
        $(this).css('border', '');
        $(this).removeAttr('error');
    }
见评论:

var sEmail = $.trim($(this).val());
//           ^^^^^^^-------------^---- Trim whitespace

if (sEmail && !filter.test(sEmail))
//  ^^^^^^^^^^--- only validate if there's something in it

if($(this).val())=>验证
.trim
$(this).val()
并在验证之前检查其是否为空?@mlefvre只需根据
.val()
测试布尔值即可得出结果@MLeFevre是的,正如T.J.Crowder给出的答案中提到的,我刚刚被抓住了。@MelanciaUK是的,不用担心,我在看到下面的内容之前回答过你:)我认为你不需要修剪值来检查它是否为空
.val()
作为布尔值测试时,如果为空,则返回false@梅拉尼亚克:如果它真的是空的,是的。但是如果用户在
”中键入,则不会。我明白你的意思。:)谢谢T.J.它很好用。