我正在尝试检查当前网址
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'))
?
答案 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...}