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:这会改变什么吗?