【问题标题】:Search array of string keys for matching variable and return all values using javascript / jquery搜索匹配变量的字符串键数组并使用 javascript/jquery 返回所有值
【发布时间】:2016-11-19 06:26:18
【问题描述】:

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

在 cookie 中,用户的购物篮 ID 以字符串形式存储,每个字符串都有一个名称/值对。我设法将所有 cookie 名称/值对推送到一个数组中,这样数组读取:

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

我已经创建了一个变量:

var name = 'basket';

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

  • 返回与“basket1”、“basket2”和“basket3”匹配的键/值对的值(请注意键中直接跟在左引号后面的多余空格);
  • 继续匹配并返回未来创建的键/值对的值(例如“basket4”、“basket5”、“basket91”);
    • 在 javascript 数组中返回所述值。

提前感谢社区。​​p>

【问题讨论】:

  • 您能否举例说明您期望上述数组的输出是什么?是像["aw7j...", "kpxp...", ...]这样的数组吗?
  • 嗨!当然。我希望数组与您所描述的完全相同。谢谢!

标签: javascript jquery arrays regex cookies


【解决方案1】:
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' ]

【讨论】:

  • ...呃。哇!。谢谢你。吹走。完美运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 2012-12-10
  • 2018-10-15
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多