2011-03-16 144 views
1

我有这段代码,但我想解决它,因为if语句,如果它是真的,它是空的...任何想法如何我可以使它总是假?href匹配链接

使用!里面的,如果它不工作

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); 

感谢

回答

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); 
+0

我不想使用一个空的真正的声明,使用它是一样的我有! – Zuker 2011-03-17 17:28:54

+0

修改了代码。我以为你会添加一些条件。 – Dogbert 2011-03-17 18:11:12

+0

这不工作......任何想法?请提前谢谢 – Zuker 2011-03-18 18:36:41

0

match()方法返回数组火柴,你必须检查它的长度。

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

这不起作用 – Zuker 2011-03-17 17:27:34