电子邮件获取Uncaught SyntaxError:意外的标识符

时间:2014-01-03 13:55:45

标签: jquery

我正在使用这段代码来检查电子邮件是否可用。有一个错误,我无法找到解决方法。这不是一个严重的错误,但我希望我的剪辑没有错误:

//em defined above this snip
$("#email").change(function() {
    var e = $("#email").val();
    var eregex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if(eregex.test(e)){
        em.removeClass("text-danger");
        em.addClass("text-warning");
        setTimeout(em.text("Email valid. Checking."),500);
 //1
      $.get("/box/check.php?m=2&q="+encodeURIComponent(e),function(data,status) {
 //2
        if(!(data=="0")) {
            em.text("Oops! This email is already registered.");
        } else {
            em.text("Great!");
        }
      });
    } else {
            em.text("Email is invalid.");
    }
});

我追踪了错误,似乎发生在上面评论的// 1和// 2之间。

我一直有:Uncaught SyntaxError:我的Chrome开发者控制台上的意外标识符。

如果我放var e = encodeURIComponent(e);,正则表达式将无法正常工作。

1 个答案:

答案 0 :(得分:1)

我预计问题是setTimeout(em.text("Email valid. Checking."),500);

setTimeout要求在延迟后执行一个函数(或它可以评估的字符串)。此代码将评估并返回一个jQuery对象。当setTimeout尝试执行此对象时,您会收到错误。删除超时,并在该行上只有em.text("Email valid. Checking.");应该解决我认为的问题