检查 userinput 值是否已经存在于 localStorage JSON 对象中?
Check if userinput value exists in localStorage JSON Object already?
我正在为我的网站制作一个登录系统。设法使用 localStorage 进行注册和登录工作(因此它将细节存储在每个帐户的数组中)
但是,我希望它在输入错误的用户名或不存在的用户名时显示错误 [因此不在 localStorage 中]。
我设法为密码做了这个,一旦输入的用户名正确,这里是密码检查代码:
else if (passwordLogin !== parse.password) {
message.innerHTML = "Incorrect account information!";
return;
}
^ 其中 passwordLogin 是他们在密码字段中输入的内容,parse 是一个为用户名解析 localstorage 的函数,因此:JSON.parse(localStorage[usernameLogin] - usernameLogin 是他们在用户名字段中输入的内容
现在我正在尝试对用户名做同样的事情。这是我迄今为止最好的代码:
if (localStorage[usernameLogin] === undefined) {
message.innerHTML = "No such ninja username exists!";
}
所以 usernameLogin 就是他们在用户名字段中输入的内容。
我正在检查他们在 localStorage 中的输入,并检查它是否是 undefined。在 localStorage 中,每个帐户的 key 是它的用户名,value 是一个包含所有详细信息的数组,例如:{"username":"Jordan","password":"asd"}[这里的关键是普通的乔丹]
如您所见,此用户名和通过检查位于 if 和 else if 循环中。 if(用户名检查)不执行任何操作,但密码检查代码在 else if 中有效(仅在输入的用户名存在且密码不匹配时有效)
也许
=== undefined
不正确。任何想法表示赞赏:)
尝试
if (!localStorage.getItem(usernameLogin)) {
message.innerHTML = "No such ninja username exists!";
}
或
if (localStorage[usernameLogin] === undefined) {
message.innerHTML = "No such ninja username exists!";
}
确保 usernameLogin
变量包含一个字符串。
检查 undefined
和 empty condtions
就足够了。
localStorage.hasOwnProperty('usernameLogin') &&
typeof localStorage.usernameLogin !== 'undefined' &&
localStorage.usernameLogin !== ''
您可以添加条件,在解析值后检查其中的值。
typeof JSON.parse(localStorage.usernameLogin) === 'object' &&
typeof JSON.parse(localStorage.usernameLogin).password === 'string'
JSON.parse(localStorage.usernameLogin).password === 'yourpassword'
我正在为我的网站制作一个登录系统。设法使用 localStorage 进行注册和登录工作(因此它将细节存储在每个帐户的数组中)
但是,我希望它在输入错误的用户名或不存在的用户名时显示错误 [因此不在 localStorage 中]。
我设法为密码做了这个,一旦输入的用户名正确,这里是密码检查代码:
else if (passwordLogin !== parse.password) {
message.innerHTML = "Incorrect account information!";
return;
}
^ 其中 passwordLogin 是他们在密码字段中输入的内容,parse 是一个为用户名解析 localstorage 的函数,因此:JSON.parse(localStorage[usernameLogin] - usernameLogin 是他们在用户名字段中输入的内容
现在我正在尝试对用户名做同样的事情。这是我迄今为止最好的代码:
if (localStorage[usernameLogin] === undefined) {
message.innerHTML = "No such ninja username exists!";
}
所以 usernameLogin 就是他们在用户名字段中输入的内容。 我正在检查他们在 localStorage 中的输入,并检查它是否是 undefined。在 localStorage 中,每个帐户的 key 是它的用户名,value 是一个包含所有详细信息的数组,例如:{"username":"Jordan","password":"asd"}[这里的关键是普通的乔丹]
如您所见,此用户名和通过检查位于 if 和 else if 循环中。 if(用户名检查)不执行任何操作,但密码检查代码在 else if 中有效(仅在输入的用户名存在且密码不匹配时有效)
也许
=== undefined
不正确。任何想法表示赞赏:)
尝试
if (!localStorage.getItem(usernameLogin)) {
message.innerHTML = "No such ninja username exists!";
}
或
if (localStorage[usernameLogin] === undefined) {
message.innerHTML = "No such ninja username exists!";
}
确保 usernameLogin
变量包含一个字符串。
检查 undefined
和 empty condtions
就足够了。
localStorage.hasOwnProperty('usernameLogin') &&
typeof localStorage.usernameLogin !== 'undefined' &&
localStorage.usernameLogin !== ''
您可以添加条件,在解析值后检查其中的值。
typeof JSON.parse(localStorage.usernameLogin) === 'object' &&
typeof JSON.parse(localStorage.usernameLogin).password === 'string'
JSON.parse(localStorage.usernameLogin).password === 'yourpassword'