首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScript RegExp验证电子邮件。正则表达式特殊字符不起作用

使用JavaScript RegExp验证电子邮件。正则表达式特殊字符不起作用
EN

Stack Overflow用户
提问于 2013-05-31 08:24:29
回答 1查看 2.4K关注 0票数 1

我有这个JavaScript函数:

代码语言:javascript
复制
function emailaddresscheck() {
        var emailregex = new RegExp("[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)");
        var emailstring = $("#email-address").val();
        if (emailregex.test(emailstring)) {
            $("#email-address-check").fadeIn(100);
            return true;
        }
        else if ($("#email-address").val().length <= 5) {
            $("#email-address-check").fadeOut(100);
            return false;
        }
    }

如果我在RegExp构造函数中有一个简单的字符串,但是这个更复杂的正则表达式不起作用,那么if条件就会触发。

我哪里错了?

更新:

这是已完成的工作代码:

代码语言:javascript
复制
function emailaddresscheck() {
        var emailregexp = new RegExp("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.(?:[A-Za-z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$");
        var emailstring = $("#email-address").val();
        if (emailregexp.test(emailstring) === true) {
            $("#email-address-check").fadeIn(100);
            return true;
        }
        else if (emailregexp.test(emailstring) === false) {
            $("#email-address-check").fadeOut(100);
            return false;
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-31 08:32:52

在使用RegExp构造函数创建正则表达式时,需要对特殊字符进行双重转义,因为它们在字符串中。

代码语言:javascript
复制
new RegExp("[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)");
                                     -^-    

或者只使用文字正则表达式:

代码语言:javascript
复制
/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)/
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16847998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档