2014-02-06 130 views
0

所以我现在有这样的:如何排除某些可变部分?

var queries = window.location.search.slice(1).split("&"); 

if(queries !== "") { 

    var count = 0, 
........ 
........ 

它让所有的被提交给搜索的$ _GET的。那么,对于新增的功能显示在搜索中使用只有“活跃”属性,我不得不添加更多_GET的$,这就是搞砸了上面的代码,因为就是它的运行通过分割是这样的:

?search_type=physical&4=64_to_74_weight_1&active_4=true&10=70_to_84_weight_1&active_10=true&6=0_to_0_weight_1&7=0_to_0_weight_1&8=0_to_0_weight_1&9=0_to_0_weight_1&118=0_to_0_weight_1 

我需要做的是排除任何“& active _#= true”,并且它们的数量不总是相同的。

我会以某种方式使用正则表达式吗?我对它不是很熟悉,所以我不知道从Regex位开始。

有没有人有任何想法或帮助?

+0

可能重复[如何在JavaScript中获取查询字符串值?](http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript) – brandonscript

+0

创建一个'{name:...,value:...}'对象的数组,并过滤​​掉所有以'active_'开头的名字? –

回答

1

你可以通过.replace()那里在你分割值之前去除条目。 。 。像这样:

var queries = window.location.search.slice(1).replace(/&active_\d+=true/g, "").split("&"); 

这应该照顾摆脱所有这些“活跃”的参数给你。

+0

我无法得到这个工作。我甚至尝试了一下测试:var str =“fbuefvhbfvhu $ active_4 = truejdnu”; var test = str.replace(/&active_ \ d + = true/g,“”); alert(test); – stinkysGTI

+0

你的示例变量使用'$'而不是'&'. ;) – talemyn

+0

我只是将你的参数字符串(从原始文章)加入到我的测试页,并运行我发布的代码,结果是:'[“search_type =物理“,”4 = 64_to_74_weight_1“,”10 = 70_to_84_weight_1“,”6 = 0_to_0_weight_1“,”7 = 0_to_0_weight_1“,”8 = 0_to_0_weight_1“,”9 = 0_to_0_weight_1“,”118 = 0_to_0_weight_1“]。在FF,Chrome和IE9中工作。 。 。 – talemyn