V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ifoto
V2EX  ›  程序员

whatsapp, web 版本 localStorage,怎么获取用户昵称。

  •  
  •   ifoto · 43 天前 · 972 次点击
    这是一个创建于 43 天前的主题,其中的信息可能已经有所发展或是发生改变。

    web 版本 localStorage ,存了用户昵称。

    但是 key 是动态生成的。本人愚钝,没 debug 出来。有大佬能指点一二吗

    5 条回复    2025-07-22 09:14:36 +08:00
    eBMm8zIi0Zq3
        1
    eBMm8zIi0Zq3  
       43 天前
    建议把 localStorage 的 key 全读出来,然后把没用的都去了,剩下的就是昵称了,昵称是以"开头的,其余以"开头的类似于"ACCEPTED"可以去掉
    eBMm8zIi0Zq3
        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());
    ifoto
        3
    ifoto  
    OP
       43 天前
    @eBMm8zIi0Zq3 我这不行
    eBMm8zIi0Zq3
        4
    eBMm8zIi0Zq3  
       32 天前
    ifoto
        5
    ifoto  
    OP
       24 天前
    谢谢,用别的办法取到了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2706 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:29 · PVG 22:29 · LAX 07:29 · JFK 10:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.