搜索字符串键的数组以匹配变量并使用javascript/jquery返回所有值

jon*_*rix 1 javascript regex arrays cookies jquery

我正在构建一个电子商务应用程序,当用户将产品添加到购物篮时,其中一部分会创建一个cookie (美国英语:请阅读'购物车').应用程序的逻辑通常会为每个用户生成多个篮子(因此会生成多个cookie).每个cookie都有一个键,它始终以字符串'basket'开头,后跟一个升序整数.每个购物篮都有一个id,它是一个32个字符的字符串,存储为cookie的值.

在cookie中,用户的篮子ID存储为字符串,每个字符串都有一个名称/值对.我已设法将所有cookie名称/值对推送到一个数组中,以便该数组读取:

["mcart=537244a1377f97374fff2233cdc29bdf", " mtoken=0f9a74b73d2f29b1c6088d63b7f4f4a5c545bbe9", " mexpires=1468626166000", " basket1=aw7j0r9ke3hq8tp20egf7105dozfn13i", " basket2=kpxpdnw6nnfyvawmk7n4s7pd9meaimy7", " basket3=9264k594wi9vgfiotkvz323n35yfvkkf"]
Run Code Online (Sandbox Code Playgroud)

我创建了一个变量:

var name = 'basket';
Run Code Online (Sandbox Code Playgroud)

我的目标是使用javascript(可能是正则表达式),或者实际上是jquery来:

  • 使用匹配'basket1','basket2'和'basket3'的键返回键/值对的值(请注意键中直接在开头引号后面的额外空格);
  • 继续匹配并返回创建的未来键/值对的值(例如'basket4','basket5','basket91');
    • 在javascript数组中返回所述值.

提前感谢社区.

use*_*559 5

var cookies = ["mcart=537244a1377f97374fff2233cdc29bdf", " mtoken=0f9a74b73d2f29b1c6088d63b7f4f4a5c545bbe9", " mexpires=1468626166000", " basket1=aw7j0r9ke3hq8tp20egf7105dozfn13i", " basket2=kpxpdnw6nnfyvawmk7n4s7pd9meaimy7", " basket3=9264k594wi9vgfiotkvz323n35yfvkkf"];

var baskets = [];

for (var i = 0; i < cookies.length; i++) {
    var match = cookies[i].match(/basket\d+=(.*)/);
    if (match) {
        baskets.push(match[1]);
    }
}

console.log(baskets);

// Output:
// [ 'aw7j0r9ke3hq8tp20egf7105dozfn13i',
//   'kpxpdnw6nnfyvawmk7n4s7pd9meaimy7',
//   '9264k594wi9vgfiotkvz323n35yfvkkf' ]
Run Code Online (Sandbox Code Playgroud)