eBMm8zIi0Zq3
62 天前
让 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());