我可以从此数组字段获取此sessionid吗?
var data = ['JSESSIONID=CE04D3A4F9A930F7716ABD1CF1D7E4A9; Path=/sample/;
Secure; HttpOnly']
答案 0 :(得分:1)
如果要使用JSESSIONID
的值,请分别在;
和=
上分割(如果始终是第一个):
var data = ['JSESSIONID=CE04D3A4F9A930F7716ABD1CF1D7E4A9; Path=/sample/; Secure; HttpOnly'];
const [, sessionId] = data[0].split(";")[0].split("=");
console.log(sessionId);
答案 1 :(得分:1)
使用拆分方法:
var data = ['JSESSIONID=CE04D3A4F9A930F7716ABD1CF1D7E4A9;Path=/sample/;Secure; HttpOnly']
var item = data[0].split("=");
var sessionId = item[1].split(";");
console.log(sessionId[0]);
sessionId[0]
有您想要的字段,即sessionid。
现在,如果您想要JSESSIONID=CE04D3A4F9A930F7716ABD1CF1D7E4A9
,那么只需split(";")
,就可以获取该字段。
var data = ['JSESSIONID=CE04D3A4F9A930F7716ABD1CF1D7E4A9;Path=/sample/;Secure; HttpOnly']
var item = data[0].split(";");
console.log(item[0])
因此,项[0]给出了此结果(JSESSIONID=CE04D3A4F9A930F7716ABD1CF1D7E4A9
)
答案 2 :(得分:1)
如果您的JSESSIONID
键可能出现在字符串中的任意位置:
const data = ['JSESSIONID=CE04D3A4F9A930F7716ABD1CF1D7E4A9; Path=/sample/; Secure; HttpOnly'];
const res = data[0].split('; ').map(item => item.split('=')).find(param => param[0] == 'JSESSIONID')[1];
console.log(res);
答案 3 :(得分:0)
String.prototype.split
不必要地昂贵(因为它会读取整个字符串并将新的字符串分配并复制到新数组中),而indexOf
与substring
则更适合于这样的简单操作:
let d = data[0];
let startIdx = d.indexOf( 'JSESSIONID=' );
if( startIdx == -1 ) throw "not found";l
let endIdx = d.indexOf( ';', startIdx + 11 );
let sessionId = d.substring( startIdx + 11, endIdx );
答案 4 :(得分:0)
此代码似乎比split()
函数快
var data = ['JSESSIONID=CE04D3A4F9A930F7716ABD1CF1D7E4A9;Path=/sample/;Secure; HttpOnly'];
var dataItem = data[0];
var eqIndex = dataItem.indexOf("=");
var scIndex = dataItem.indexOf(";", eqIndex+1);
var sessionId = dataItem.substring(eqIndex+1, scIndex);
CE04D3A4F9A930F7716ABD1CF1D7E4A9