web 版本 localStorage ,存了用户昵称。
但是 key 是动态生成的。本人愚钝,没 debug 出来。有大佬能指点一二吗
1
eBMm8zIi0Zq3 43 天前
建议把 localStorage 的 key 全读出来,然后把没用的都去了,剩下的就是昵称了,昵称是以"开头的,其余以"开头的类似于"ACCEPTED"可以去掉
|
2
eBMm8zIi0Zq3 43 天前
让 GPT 写了下,在我这是可行的
function extractNicknames() { const nicknames = []; const bannedValues = new Set([ '', 'true', 'false', 'null', 'undefined', 'ACCEPTED', 'NOT_ACCEPTED' ]); for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); const value = localStorage.getItem(key); if ( typeof value === 'string' && value.startsWith('"') && value.endsWith('"') ) { const inner = value.slice(1, -1); // 去除引号 // 排除无效值 if ( bannedValues.has(inner) || inner.includes('@') || inner.includes(':') || inner.includes('/') || inner.includes('=') || /^[\d_]+$/.test(inner) || // 全数字或下划线 /^unknown[-\d]+$/.test(inner) || // unknown-123 /^en_[A-Z]{2}$/.test(inner) // en_US ) { continue; } // 可能的昵称:包含字母,允许空格、连字符、撇号 if (/^[A-Za-z][A-Za-z\s\-']{1,30}$/.test(inner)) { nicknames.push(inner); } } } return nicknames; } // 调用 console.log(extractNicknames()); |
![]() |
3
ifoto OP @eBMm8zIi0Zq3 我这不行
|
4
eBMm8zIi0Zq3 32 天前
|
![]() |
5
ifoto OP 谢谢,用别的办法取到了
|