我有一个 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\.([^.]+)
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/