我有名字(fname + lname)和电子邮件,我有他们的正则表达式,但它们没有验证

var  fnlnregex = /^[\w\/\s\.-]+$/;  //first name + last name
var usremailregex = /^[@.\w]+$/;

if(!usremailregex.test($("#Eml").val())){
        flag = false;
        $("#Eml").attr('class','red');
    }else{
        $("#Eml").attr('class','');
    }


但是它并没有验证电子邮件字段,而是将以下数据视为正确
    //如果我在电子邮件字段中仅输入“ abc”,则表示输入没有错

fnlnregex-这不应该允许数字,但如果使用正则表达式,则允许使用数字。我该如何纠正

最佳答案

/^[@.\w]+$/表示:

start of string - one or more of a combination of @, any character or word boundary - end of string

我必须说这是毫无用处的。 .表示已经包含@\w的任何字符。

至于为什么abc匹配-很好,它匹配beginning - any character - end

您要寻找的是以下几方面的东西:

/^[a-z0-9]+@[a-z0-9]+\.[a-z]+$/i

转换为:

beginning - one or more letters or digits - a @ - one or more letters or digits - a . - one or more letters - end

i表示不区分大小写。

关于javascript - 正则表达式有什么问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6864171/

10-12 12:51