我想保存特定字符串后出现的任何值。
案文如下:
ug=595ad8543534510555d9; ugs=1; s_ppv=54353; optimizelyEndUserId=orwe535908r0.58354354373; countryCode=US; geoData=new york|NY|11432|US|NA; _uetsid=_u5435fgdac3e; _t_tests={"[dasds59ec]":"B","[2fdfsde8cd]":"A","lift_exp":"m"};
在上面的文字中,字段的值将针对不同的用户进行更改。标签名称保持不变。我想获取 geoData 的值。那么, geoData = 之后的所有内容。 在上面的数据中,我想回来:
new york|NY|11432|US|NA
我想出了/geoData=[^;]*/
,然而,这给了我geoData=new york|NY|11432|US|NA
。
如何从我的正则表达式中排除geoData=
部分,以便在=
符号之后给出我的值?
答案 0 :(得分:2)
您应该使用捕获组(将要保留在括号中的部分包裹起来):geoData=([^;]*)/
const match = 'ug=595ad8543534510555d9; ugs=1; s_ppv=54353; optimizelyEndUserId=orwe535908r0.58354354373; countryCode=US; geoData=new york|NY|11432|US|NA; _uetsid=_u5435fgdac3e; _t_tests={"[dasds59ec]":"B","[2fdfsde8cd]":"A","lift_exp":"m"};'.match(/geoData=([^;]*)/);
console.log(match[1]);

答案 1 :(得分:1)
或使用replace
方法:
var text = 'ug=595ad8543534510555d9; ugs=1; s_ppv=54353; optimizelyEndUserId=orwe535908r0.58354354373; countryCode=US; geoData=new york|NY|11432|US|NA; _uetsid=_u5435fgdac3e; _t_tests={"[dasds59ec]":"B","[2fdfsde8cd]":"A","lift_exp":"m"};'
console.log(
text.replace(/.*geoData=([^;]+).*/, "$1")
)