Javascript正则表达式不工作

Javascript正则表达式不工作,javascript,regex,Javascript,Regex,有人能重写这个javascript吗。现在的问题是1个正则表达式只起作用(来自电子邮件的那一个) 先前的问题: 我在这里得到了建议,但我想我把它放在了我的代码中 function checkform ( form ) { var rex = /[^a-z]/i; var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if (!regex.test(form.email

有人能重写这个javascript吗。现在的问题是1个正则表达式只起作用(来自电子邮件的那一个)

先前的问题: 我在这里得到了建议,但我想我把它放在了我的代码中

function checkform ( form )
{
    var rex = /[^a-z]/i;
    var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (!regex.test(form.email.value))
    {
        alert( "Please enter youre valid email address." );
        form.email.focus();
        return false ;
    }

    if (rex.test(form.name.value)) 
    {
        alert( "Please enter your name. no numbers or #$^& things allowed)." );
        form.name.focus();
        return false ;
    }

    return true ;
}
这个怎么样

"^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$"

假设您希望这两个表单字段的行为相同,那么第一个表单字段的测试结果是否定的


你说email one可以工作,所以也许你想写
如果(!rex.test(for.name.value))

什么工作不正常?
/[^a-z]/i
模式应匹配任何非字母字符。您使用什么输入进行测试?请阅读以下内容:您应该删除
([a-zA-Z0-9]{2,4})+
tld块后面的最后一个+,因为它允许您基本上拥有任何大于2个字符的tld后缀。但除此之外,不应该有问题。顺便说一句,尽管您的RegExp应该满足大多数需求,但如果您想查看真正的电子邮件验证RegExp,您可以在这里查看,谢谢您的所有评论,它现在很少工作。塞拉巴斯,我会把它移走。cha0site我从那里得到了我的正则表达式:)我只在电子邮件检查上方进行了姓名检查,现在很少工作了。谢谢:)