Javascript 对于电子邮件验证,此代码不起作用。我可以知道原因吗

Javascript 对于电子邮件验证,此代码不起作用。我可以知道原因吗,javascript,Javascript,看看这个。在电子邮件字段中,它甚至不接受单键笔划。据我所知,AllowRegex变量中存在错误,无法验证我在表单的电子邮件字段中输入的内容 function mailonly(e) { var code; if (!e) var e = window.event; if (e.keyCode) code = e.keyCode; else if (e.which) code = e.which; var character = String.fromCha

看看这个。在
电子邮件字段
中,它甚至不接受单键笔划。据我所知,
AllowRegex
变量中存在错误,无法验证我在表单的电子邮件字段中输入的内容

function mailonly(e) {
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    var character = String.fromCharCode(code);
    var AllowRegex = /^[\ba-zA-Z0-9\s-._ ]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/;
    if (AllowRegex.test(character))
        return true;
    return false;

}

在写入完整的电子邮件地址后尝试验证电子邮件。我想你用了
onblur

我还注意到,您在电子邮件中允许了不正确的
\s
(空格)。您应该改用
\S
(CAP)。它与
\s
相反


另外,在
(点)之前应该有一个
\
<代码>/^[\ba-zA-Z0-9\S-\.\u]

AllowRegex检查完整的电子邮件Id,而不是单个字符,并且您正在检查每个按键上的文本。
选中此复选框,它将帮助您完成此操作。
另一个例子是。


当数据一个字符一个字符地显示时,您是否真的试图针对正则表达式进行验证?这行不通。等待,直到您拥有完整的地址,然后使用正则表达式。当然,如果正则表达式本身有效。你知道它甚至不允许输入单个字符吗?我不能在表单的电子邮件字段中按任何键…实际问题是表单电子邮件字段甚至不允许输入单个键,所以我如何输入整封电子邮件…删除
onkeypress
(或
onkeydown
onkeydup
)并在
onblur
事件上调用JS。您有trid JSFIDLE示例吗?它的工作原理是你可以用你的regexp而不是onkeypress来验证
onblur
事件。是的,Pratik先生,但是它显示的id属性是未定义的,在id=“user\u email”可能它的bcoz我正在使用struts框架…我不明白…id=“user\u email”是你html中电子邮件id的输入标签的id。
    function validateEmail() {

    var validEmail = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    if (validEmail.test($('#user_email').val())) {
        $('.masked-check').fadeIn(300);
        $('#status').html('Valid Email!');
    }
    else {
        $('.masked-check').fadeOut(300);
        $('#status').html('INVALID Email!');
    }

}