JavaScript正则表达式不接受任何键

JavaScript正则表达式不接受任何键,javascript,Javascript,当我添加+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/此代码以不接受任何密钥的形式发送到电子邮件字段中的此/^[\ba-zA-Z\s-\.\.\\.\\.\\.\\\.\\.\\.\code> 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 charact

当我添加
+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/此代码以不接受任何密钥的形式发送到电子邮件字段中的此
/^[\ba-zA-Z\s-\.\.\\.\\.\\.\\\.\\.\\.\code>

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-Z\s-\.\_]



+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/;

    if (AllowRegex.test(character)) return true;
    return false;
}

在字符类中需要转义破折号(或将其放在类的开头/结尾):

/^[\ba-zA-Z\s\-\\.\\\\\\\\\\\\\.\\\\\\.\\\\\.\\\\.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.[\ba-zA-Z\s\
顺便说一下,不需要逃避其他角色:

/^[\ba-zA-Z\s.u-]
\b
与此无关:

/^[a-zA-Z\s.u-]
正则表达式的其余部分看起来很好


但不要试图用正则表达式验证电子邮件。例如,您可以在发送包含验证帐户链接的确认电子邮件时使用
/.+@.+/

正如其他人所说,您的正则表达式无法正确验证电子邮件地址。但是您遇到的具体问题很可能是您没有转义\s和之间的“-”字符。在正则表达式的第一部分。正则表达式解释器将尝试将其读取为范围\s-。这当然不是什么


SP00米也打败了我。除了去掉\b我想您不想在电子邮件地址的第一部分匹配\s外,还应该在该部分匹配0-9。

您认为这是正确的电子邮件验证正则表达式吗?否。
如果(!e)var e=window.event
-如果(!e)e=window.event,您可能是指
@Kos:这会改变什么吗?