消极的观察和前瞻

时间:2016-10-14 09:58:04

标签: javascript

我想从一个字符串中获取一个网站,所以我使用match()

写了一个RegEx模式
var websiteOutput = string.match(/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi);

现在的问题是,该字符串还包含电子邮件地址,但我不想与这些相匹配,所以我想到了一个负面的后视和看起来为' @',但我不确定如何实施它。

不匹配,但匹配:

    test.test@test.com
    test@test.com

希望你能帮助我, 问候TZimon

1 个答案:

答案 0 :(得分:0)

您可以尝试更简单的方法,而不是使正则表达式复杂化:

if(!/@/gi.test(string)){
    var websiteOutput = string.match(/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi);
}

即只接受其中没有@的字符串。