正则表达式会导致引用错误和不引用错误

时间:2017-03-26 17:53:41

标签: javascript jquery regex

我在Javascript中为类构建正则表达式模式。

    var re = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";

这是在http://scriptular.com/上测试的,声称它应该适用于Javascript(这是一个电子邮件模式,顺便说一下),但在我的网站上使用时肯定没有。

搜索Google我发现将模式放在引号上会将其转换为字符串,该字符串没有.exec方法解释未找到的'方法'我得到的例外。但是再次删除引号会给我带来很多“意想不到的令牌”#39;异常。

使用\转义字符似乎对错误没有影响,那么这样做的正确方法是什么呢?

以下是相关代码,如果需要(使用JQuery):

$('#email-btn').click(function(){
    var re = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";
    var t = $('#email').val();
    if (re.exec(t)) {
        console.log(t+' Works');
    }
}); 

1 个答案:

答案 0 :(得分:0)

变量Compositing... Compositing image #2 Multi-band blender, number of bands: 10 Compositing image #3 OpenCV Error: Assertion failed (dst.cols < SHRT_MAX && dst.rows < SHRT_MAX && src.cols < SHRT_MAX && src.rows < SHRT_MAX) in cv::remap, file G:\Development\opencv\sources\opencv\modules\imgproc\src\imgwarp.cpp, line 4956 是一个字符串文字,您需要创建RegExp对象,然后才能使用exec()

re