检查当前URL中的特定uri - Jquery

时间:2013-01-23 22:45:10

标签: javascript jquery url uri

我正在尝试检查当前网址

base_url/index.php?name0=value0&name1=value1&name2=value2...

包含特定的name=value。我试过这个

var path = $.inArray('name=value', $(location).attr('href').split('&'));
        if (path  > -1){ triggers my function...}

但我想如果url是url编码的话,这将不起作用。有没有办法检查网址是否包含name=value而未检查所有条件(split('&')split('%26'))

2 个答案:

答案 0 :(得分:1)

您可以使用核心javascript:

var parameterName = 'name0';
var parameterValue = 'value0';
var path = decodeURI(location.href).indexOf(parameterName+'='+parameterValue); 
if (path > -1){ 
    triggers my function...
}

编辑:我已经对它进行了更多测试,并且两种解决方案都不是完美的:当您在指定的名称值之前有某些内容时,我的操作会失败,例如:varname0当您检查{{1}时将被找到并且这是不正确的,你的(和monshq)不检查name0字符后面的第一个值/对。

How can I get query string values?是您正在寻找的东西。

答案 1 :(得分:1)

拆分将始终有效,因为如果分割参数,则&部分网址不会被编码。但是,您可以在URL中编码名称或值。要搜索它们,您应该使用encodeURI

var path = $.inArray(encodeURI('name=value'), $(location).attr('href').split('&'));
    if (path  > -1){ triggers my function...}