我一直在寻找一种方法来设置一个cookie,如果一个URL参数被持续存在。问题是,URL参数的名称是半动态的。getParameter - 带有动态名称值的URL参数
的网址是:
http://zzzz.test.bbbb/index.html?transaction[XXXX][zzzzz]=YYYYY
凡XXXX
和zzzzz
都澳的URL名称的一部分,但可以根据什么在链接改变。
正确的getParameterByName
函数如何识别URL参数transaction[XXXX][zzzzz]
?
我已经试过,但它不工作:
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"));
}
任何想法?
xxxx和zzzz可以是什么类型的值?它只是字母吗?或字母和数字? 如果只有单词事务存在时才设置cookie,那么这还是足够了吗? – wallop 2014-09-27 09:38:00
也是交易总是第一个查询参数? – wallop 2014-09-27 09:40:07
@Wishy xxxx和zzzz可以是字母或数字。该参数可以在链接的任何地方。如果它是第一个,那么它将显示为'transaction [XXXX] [zzzzz] = YYYYY'如果它不是第一个出现'&transaction [XXXX] [zzzzz] = YYYYY' – 2014-09-27 10:00:30