Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:设置cookie-动态URL参数名称_Javascript_Url_Cookies_Dynamic_Parameter Passing - Fatal编程技术网

Javascript:设置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) {

我一直在寻找一种在URL参数为persent时设置cookie的方法。问题是,URL参数的名称是半动态的

网址为:

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]
    );
}