【问题标题】:How to filter elements with regex expression [duplicate]如何使用正则表达式过滤元素[重复]
【发布时间】:2015-04-16 03:32:58
【问题描述】:

我想选择所有指向外部链接的 a 元素,所以我想要一个只选择匹配的 href 值的选择器

/https?:\/\/[^\/\!\?\<\>\_\*\&\(\)\#\$\@]*/

不同于

window.location.hostname

正确的表达方式是什么?

【问题讨论】:

    标签: javascript jquery regex


    【解决方案1】:

    这将是更强大的解决方案,检查与主窗口不同的位置主机名:

    var $externalLinks = $('a[href]').filter(function(){
        return this.hostname != window.location.hostname;
    });
    

    -jsFiddle-

    【讨论】:

    • 非常好的建议。
    • @Vohuman Thx 但不知道为什么这被否决了,我一定遗漏了一些明显的东西,也许......?!
    • 答案没有错。有时投反对票的原因不是技术上的
    • 也许答案没有解决正则表达式,但它解决了我打算使用正则表达式的问题
    【解决方案2】:
    $("a:not([href*="+window.location.hostname+"])[href*=http], a:not([href*="+window.location.hostname+"])[href*=https]")
    

    会给你所有没有window.location.hostname但有httphttps的链接

    【讨论】:

      【解决方案3】:

      不需要正则表达式。 试试这个(使用 Jquery):

      var links = $('a[href^="http"]');
      

      【讨论】:

        猜你喜欢
        • 2016-07-06
        • 2016-03-01
        • 2016-10-23
        • 1970-01-01
        • 2018-10-01
        • 2015-11-25
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多