正则表达式的.match不起作用

时间:2012-01-11 22:55:05

标签: javascript jquery regex match

我正在尝试使用.match进行正则表达式验证进行电子邮件验证,出于某种原因,即使遵循所有格式,它也只显示无效!

javascript功能

function check_email_valid(emails) {
        var emailRegex = '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$';
        if (emails.match(emailRegex)) {
            jQuery('#<%=Label16.ClientID%>').css('color', 'green');
            jQuery('#<%=Label16.ClientID%>').show();
            jQuery('#<%=Label16.ClientID%>').text("Valid Email!");
        }
        else {
            jQuery('#<%=Label16.ClientID%>').css('color', 'red');
            jQuery('#<%=Label16.ClientID%>').show();
            jQuery('#<%=Label16.ClientID%>').text("Invalid Email!");
        }

事件触发器

 $('#<%=TextBox8.ClientID%>').keyup(function () {
            var email = jQuery('#<%=TextBox8.ClientID%>').val();
            check_email_valid(email);
        });

我输入了test@mail.com并收到了“无效的电子邮件!”。知道为什么吗?

2 个答案:

答案 0 :(得分:1)

区分大小写....然后验证电子邮件地址是a bit more complicated然后......(。博文组为一个,但还有更多......)。

答案 1 :(得分:0)

JavaScript定义正则表达式模式的方式与其他语言略有不同。它们不是字符串,而是简单地以斜杠开头,以一个斜杠结束,之后你可以指定一些标志。

您的模式定义如下:

var emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;

模式末尾的i标志使其不区分大小写。