如何用JavaScript正则表达式解析localStorage中JSON的id与token?
从localStorage的session数据提取id和token:正则方案与实现代码
一、适配场景的正则表达式
针对你给出的JSON格式,这两个正则可以精准提取id和token:
- 匹配id值:
/"id":(\d+)/
解释:"id":匹配固定键名,(\d+)捕获后续的数字序列(也就是id值) - 匹配token值:
/"token":"([^"]+)"/
解释:"token":"匹配固定前缀,([^"]+)捕获双引号之前的所有字符(刚好是完整的token内容)
二、完整JavaScript代码实现
下面是结合正则的完整流程代码,直接就能用:
// 从localStorage取出session字符串 const sessionData = localStorage.getItem('session'); // 定义正则 const idPattern = /"id":(\d+)/; const tokenPattern = /"token":"([^"]+)"/; // 执行匹配 const idResult = sessionData.match(idPattern); const tokenResult = sessionData.match(tokenPattern); // 验证匹配结果并处理 if (idResult && tokenResult) { const userId = idResult[1]; const userToken = tokenResult[1]; // 组合成指定格式 const combinedStr = `${userId}:${userToken}`; // Base64编码 const base64Str = btoa(combinedStr); // 这里可以把base64Str赋值给你需要的变量 console.log(base64Str); } else { console.log('无法从session数据中提取id或token'); }
三、额外建议:更可靠的JSON解析方案
虽然正则能解决问题,但JSON数据本身有明确的结构,用JSON.parse解析会更稳定——哪怕JSON里多了空格、键值对顺序变了,都不会影响结果,代码也更简洁:
const sessionData = localStorage.getItem('session'); try { const sessionObj = JSON.parse(sessionData); const combinedStr = `${sessionObj.id}:${sessionObj.token}`; const base64Str = btoa(combinedStr); console.log(base64Str); } catch (err) { console.log('解析session JSON出错:', err); }
如果你的session数据格式不会随意变动,正则完全够用;要是想兼容更多格式变化,优先选JSON.parse。
内容的提问来源于stack exchange,提问作者ex7lted
相关产品推荐
相关产品推荐

