href与链接匹配

时间:2011-03-16 13:02:52

标签: jquery regex

我已经得到了这段代码,但是我想修复它,因为if语句如果它是真的它是空的......任何关于我如何能使它成为虚假的想法总是?

使用!在内部,如果它不工作

var $link = $(this).attr("href");
if ($link.match(/^(?:.*?\.)?(domain)\.net(?:\/.*)?$/))  {
}else {
    $(this).attr("href",'http://links.domain.net/?url='+$link);
}

这是函数中的jquery

/* change_links */
(function($) {
    $.fn.change_links = function() {
        $('.post a:not([href^=mailto])').each(function() {
            var $link = $(this).attr("href");
            if ($link.match(/^(?:.*?\.)?(taringacs)\.net(?:\/.*)?$/))  {
            }else {
                $(this).attr("href",'http://links.taringacs.net/?url='+$link);
            }
        });
    }
})(jQuery);

提前致谢

2 个答案:

答案 0 :(得分:0)

使用RegExp.test

/* change_links */
(function($) {
    $.fn.change_links = function() {

        $('.post a:not([href^=mailto])').each(function() {
            var $link = $(this).attr("href");

            if (! /^(?:.*?\.)?(taringacs)\.net(?:\/.*)?$/.test($link))  {
                $(this).attr("href",'http://links.taringacs.net/?url='+$link);
            }

        });

    }

})(jQuery);

答案 1 :(得分:0)

match()方法返回一个匹配数组,你必须检查它的长度。

if ($link.match(/^(?:.*?\.)?(domain)\.net(?:\/.*)?$/).length == 0)  {
    $(this).attr("href",'http://links.domain.net/?url='+$link);
}