Javascript 使用正则表达式解析字符串中的数据?

Javascript 使用正则表达式解析字符串中的数据?,javascript,node.js,Javascript,Node.js,我正在节点中阅读一堆随机的“标题”信息 它看起来像这样: _Aa:GA1.1.78037747.867108,44907=5xyz;Webstorm-a36041d5=9fbb-48e9-b19e-e3f0a3282151; srce=冷却器节点;nsid=1234cookie\u数据=T%3D1_gat_PP=1 问题: 我正在尝试编写一个正则表达式或其他东西来解析字符串中的“cookie\u data”值 是否可以将其转换为地图或提取cookie\u数据=T%3D1 我试过做: const

我正在节点中阅读一堆随机的“标题”信息

它看起来像这样:

_Aa:GA1.1.78037747.867108,44907=5xyz;Webstorm-a36041d5=9fbb-48e9-b19e-e3f0a3282151; srce=冷却器节点;nsid=1234cookie\u数据=T%3D1_gat_PP=1

问题: 我正在尝试编写一个正则表达式或其他东西来解析字符串中的“cookie\u data”值

是否可以将其转换为地图或提取cookie\u数据=T%3D1

我试过做:

const i= str.indexOf('cookie_data');
const res = str.chatAt(i);
但仍然没有去任何地方,因为我不能一直穿越,直到我得到';'


想知道是否还有其他有效的方法来提取信息吗?

使用
match
匹配字符串两部分之间的文本:

const str='_Aa:GA1.1.78037747.867108,44907=5xyz;Webstorm-a36041d5=9fbb-48e9-b19e-e3f0a3282151;srce=冷却器节点;nsid=1234;cookie_数据=T%3D1_gat_PP=1;'
const found=str.match(/cookie_data=([^;]+);/)[1];
console.log(找到)
您可以使用package解析cookie,您还将获得所有其他值,而不仅仅是
cookie\u数据

const cookie = require('cookie');

const string = '_Aa:GA1.1.78037747.867108, 44907=5xyz; Webstorm-a36041d5=9fbb-48e9-b19e-e3f0a3282151; srce=coolernode; nsid=1234; cookie_data=T%3D1; _gat_PP=1$

const parsed = cookie.parse(string);

console.log(parsed.cookie_data); // T=1 (decoded)
/*
   { '_Aa:GA1.1.78037747.867108, 44907': '5xyz',
   'Webstorm-a36041d5': '9fbb-48e9-b19e-e3f0a3282151',
   srce: 'coolernode',
   nsid: '1234',
   cookie_data: 'T=1',
   _gat_PP: '1' }
*/
或者,由于您正在尝试正则表达式,请将
match
与捕获组一起使用,以获取
cookie\u data
的值,并使用
decodeURIComponent
解码该值并获取
T=1
而不是
T%3D1

const string='_Aa:GA1.1.78037747.867108,44907=5xyz;Webstorm-a36041d5=9fbb-48e9-b19e-e3f0a3282151;srce=冷却器节点;nsid=1234;cookie_数据=T%3D1_gat_PP=1;'
常量[,数据]=string.match(/cookie_data=(.+?);/);

日志(数据,组件(数据))
您想要
T%3D1
?@MarcosCasagrande Yes应该首选第二种方法,因为OP最终会有一个为其他情况提供通用解决方案的解析器。但是,
\u Aa:GA1.1.78037747.867108,
部分似乎需要与字符串其余部分不同的解析规则。