Javascript:设置cookie-动态URL参数名称
我一直在寻找一种在URL参数为persent时设置cookie的方法。问题是,URL参数的名称是半动态的 网址为:Javascript:设置cookie-动态URL参数名称,javascript,url,cookies,dynamic,parameter-passing,Javascript,Url,Cookies,Dynamic,Parameter Passing,我一直在寻找一种在URL参数为persent时设置cookie的方法。问题是,URL参数的名称是半动态的 网址为: http://zzzz.test.bbbb/index.html?transaction[XXXX]=YYYYY XXXX是根据客户而变化的用户ID,YYYY是实际值(交易编号) 我有下面的代码,但它无法识别刹车,也无法识别里面是什么。如何设置它以识别URL参数,包括brakets和brakets中的动态用户ID 这是我的密码: function URLparam(name) {
http://zzzz.test.bbbb/index.html?transaction[XXXX]=YYYYY
XXXX是根据客户而变化的用户ID,YYYY是实际值(交易编号)
我有下面的代码,但它无法识别刹车,也无法识别里面是什么。如何设置它以识别URL参数,包括brakets和brakets中的动态用户ID
这是我的密码:
function URLparam(name) {
return unescape(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}
if (URLparam("transaction") !== null && !get_cookie ("Transacion_ID")) {
set_cookie ("Transacion_ID", URLparam("transaction"));
}
if (get_cookie ("Transacion_ID")) {
console.log(get_cookie ("transaction"));
}
});
任何暗示都将不胜感激
谢谢
新增==========================
对于以下格式的链接:
http://zzzz.test.bbbb/index.html?transaction[XXXX][zzzzz]=YYYYY
正确的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, " "));
}
有什么想法吗?此版本的
URLparam()
允许在名称后添加可选的[XXX]
:
function URLparam(name) {
return unescape(
(RegExp(name + '(?:\\[\\d+\\])?=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}
要允许多个数组索引,请将?
(可选)更改为*
(任意重复次数):
您正在设置的cookie是
Transacion\u ID
,为什么要记录transaction
?您正在查找名为transaction
的URL参数,而不是transaction[XXXX]
。URLparam()
函数中没有允许在name
之后使用可选括号的内容。可以更改cookie的名称。主要问题是如何查找URL参数transaction[XXXX]
,其中XXX是任何数字值,括号也是recognized@Barmar:您将向URLparam()添加什么内容
是否允许并识别括号和URL参数名称中的值?@Barmar我对URL参数名称中包含两个方括号值的链接也有同样的问题。我已经更新了显示我正在使用的代码的问题是!完美的这正是我想要的。谢谢你,巴尔马!对于URL参数名称中包含两个方括号中的值的链接,我也遇到了同样的问题。我已经更新了问题,显示了我正在使用的代码
function URLparam(name) {
return unescape(
(RegExp(name + '(?:\\[\\d+\\])*=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}