Javascript getParameter-具有动态名称值的URL参数
我一直在寻找一种在URL参数为persent时设置cookie的方法。问题是,URL参数的名称是半动态的 网址为:Javascript getParameter-具有动态名称值的URL参数,javascript,function,cookies,url-parameters,getparameter,Javascript,Function,Cookies,Url Parameters,Getparameter,我一直在寻找一种在URL参数为persent时设置cookie的方法。问题是,URL参数的名称是半动态的 网址为: http://zzzz.test.bbbb/index.html?transaction[XXXX][zzzzz]=YYYYY 其中XXXX和zzzzz是URL名称的一部分,但可以根据链接中的内容进行更改 为了识别URL参数事务[XXXX][zzzzz],正确的getParameterByName函数应该是什么样子的 我尝试过这个,但不起作用: function getParam
http://zzzz.test.bbbb/index.html?transaction[XXXX][zzzzz]=YYYYY
其中XXXX和zzzzz是URL名称的一部分,但可以根据链接中的内容进行更改
为了识别URL参数事务[XXXX][zzzzz],正确的getParameterByName函数应该是什么样子的
我尝试过这个,但不起作用:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp(name + '(?:\\[\\d+\\]?:\\[\\d+\\])?=' + '(.+?)(&|$)'),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
if (getParameterByName("transaction")) {
set_cookie ("Transaction_ID", getParameterByName("transaction"));
}
有什么想法吗?检查这个。这对你有帮助。
用window.location.search替换locatStr;下面的代码将在所有场景中工作
function getParameterByName(){
var locatStr = '?xyz=123&transaction[XXXX][zzzzz]=YYYYY',
searchStr = locatStr.split('?')[1],
matchArr = searchStr.match(/transaction\[[a-zA-Z0-9]+\]\[[a-zA-Z0-9]+\]/gi),
para;
if(matchArr){
var temp = searchStr.split(matchArr[0]+'=')[1];
return ((temp.indexOf('&')!=-1) ? temp.split('&')[0] : temp);
}
else{
return false;
}
}
var param = getParameterByName();
console.log(param);
if(param){
console.log('set cookie here');
}
else{
console.log('no cookie present');
}
注意:如果满意,不要忘记接受答案xxxx和zzzz可以是什么类型的值?只是字母表吗?还是字母和数字?如果仅存在单词transaction,则设置cookie是否足够?transaction是否始终是第一个查询参数?@Wishy xxxx和zzzz可以是字母或数字。参数可以位于链接中的任何位置。如果它是第一个,它将显示为?transaction[XXXX][zzzzz]=YYYYY如果它不是第一个,它显示为&transaction[XXXX][zzzzzzz]=YYYYY这个词transaction只是URL参数的名称,我将通过运行函数getParameterByNametransaction{set_cookie transaction_ID,getParameterByNametransaction;}来设置cookie阿德里安,对不起,我没有解释清楚。我想为您创建一个正则表达式,所以我问了这些问题。我很清楚这些是什么意思。cookie已设置,但值保持为yyyy。cookie值也应该根据URL中的内容是动态的。我上面提到过,请更改locatStr=window.location.search。值是url中显示的任何内容。