javascript - 在字符串/cookie 中的特定单词之前抓取字符

标签 javascript arrays string split

我有一个 cookie (_gaexp),我想从中提取值:GAX1.3.yK3HnOfSRZCVUMNkK3tVCA.18961.ss12!QV1ffpISQcCGmM4IOTuUlQ.18961.0!F9l4roGRR5K03cSaZMWQiA.18961.1我特别想提取18961之前的字符仅限 ,我可以做到。
但我不想要GAX1.3包含在我的结果中。
例如,我有以下代码:

let read  = readCookie("_gaexp").split("!");
read.forEach(function(key, index) {
    splitBeginningOfCookie = read[0].split('.')
    optimizeID = splitBeginningOfCookie[3];
    
    let variantID = key.split(optimizeID+".")[1];
    let id = key.split("."+optimizeID)[0];
    console.log("variantID", variantID);
    console.log("id", id);
});
哪个console.logs:
variantID ss12
id GAX1.3.yK3HnOfSRZCVUMNkK3tVCA

variantID 0
id QV1ffpISQcCGmM4IOTuUlQ

8 variantID 1
id F9l4roGRR5K03cSaZMWQiA
我想排除 GA1.3.从第一个循环开始。从这个字符串中获取长 ID 的最佳方法是什么?
最后2个循环很好。它只是第一个,它返回 18961 之前的所有内容.
谢谢,

最佳答案

而不是使用 split()您可以使用正则表达式来抓取 .18961. 周围的两个部分.在这种情况下,您可以使用正则表达式:

([^.]+)\.18961\.([^.]+)
regex diagram
regexper.com

const cookie = "GAX1.3.yK3HnOfSRZCVUMNkK3tVCA.18961.ss12!QV1ffpISQcCGmM4IOTuUlQ.18961.0!F9l4roGRR5K03cSaZMWQiA.18961.1";
const regex = /([^.]+)\.18961\.([^.]+)/;

const read = cookie.split("!");
read.forEach((part, index) => {
  const [_, id, variantID] = part.match(regex);
  
  console.log("variantID", variantID);
  console.log("id", id);
});

关于javascript - 在字符串/cookie 中的特定单词之前抓取字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68975303/

相关文章:

javascript - 日期选择器从文本文件读取变量

java - 表达式必须是数组,但是...要加倍

创建字符链表并打印

javascript - 使用 jquery 或 javascript 从 json 变量数据获取值

javascript - 如何删除场景?

javascript - 使用 vscode-regex 插件?

Javascript:如何转换数组?

java - 如何在 Java 中编写很长的数组?

string - 在字符串上的when表达式中设置忽略大小写值

Angular(2/4/5/6) 将时隙数组转换为时间范围