如何使用正则表达式更有效地使jQuery location.search工作?

时间:2015-02-14 01:37:36

标签: javascript jquery regex

所以,我有一些jQuery代码隐藏了#34; .toggle-featured"除了本网站的博客索引页面(正在开发中)之外的任何页面上的div(特色部分),例如:http://sabq-dev.squarespace.com/experts/

它工作正常,但我知道有更好的方法可以用更少的冗余j来实现相同的结果。

以下是我目前所拥有的一个例子:

(function($){

if(location.search == "?category=Creativity-Intelligence"){
  $('.toggle-featured').hide();
}

})(jQuery);

然后我为每个类别查询重复此操作(10个以上构成过滤器类别导航栏中的链接,并且每个博客部分都相同),当我相信我真正需要的是正确的正则表达式时让脚本找到任何前缀为"?= category"然后隐藏" .toggle-featured" DIV。希望这有意义吗?

到目前为止,我对正则表达式的所有阅读都让我无处可去,我确信它相对简单,但对于我的生活,我似乎无法弄明白

非常感谢任何想法

谢谢!

2 个答案:

答案 0 :(得分:0)

使用

if ( /\?category=/.test(location.search) ) {

它检查?category=是否是location.search的子字符串。对于这个特定的测试,你不需要求助于正则表达式,

if ( location.search.indexOf("?category=") >= 0) {

也可以。

必须使用反斜杠来逃避正则表达式语法中?的特殊含义(零或一次出现)。

答案 1 :(得分:0)

如果你需要做的只是找到一个设置字符串,你可以这样做:

var s = location.search;
if(s.indexOf('?category=') != -1) {
  $('.toggle-featured').hide();