我想创建一个简单的Javascript登录网站。在这个网站中,我想检查数组中是否存在用户名。虽然我对Javascript语法还不熟悉,但我仍想尝试一下,但我失败了。
这是我失败的尝试:
// List of username's I want to block (aka. give error if they enter a username existing in this list)
var unAllowedUserNames = ["snapchat", "instagram", "youtube", "cocacola", "christoffer"]; /*5*/
// The username they enter
var username = document.getElementById("username");
// A simple function that alerts whether their username is valid or not
function validate() {
// If username.value exists in unAllowedUserNames (index 1 though 4)
if (username.value == unAllowedUserNames[0, 1, 2, 3, 4]) {
alert("Unallowed username!")
} else {
alert("Okay")
}
}

<label for="username">Username:</label><input type="text" id="username"><br>
/* Ignore this specific field, it is unnecessary */
<label for="password">Password:</label><input type="text" id="password"><br>
<input type="button" value="Register" onclick="validate()">
&#13;
我是什么&#34;期待&#34; /我想要实现的目标:
if (username.value == unAllowedUserNames[0, 1, 2, 3, 4]) {
将遍历方括号([0, 1, 2, 3, 4]
)中定义的索引,并根据结果返回true或false(结果是,输入的用户名是否为username.value
)是在数组的任何索引中找到)
我知道我可以创建一个遍历数组中所有值的循环,并在用户名与任何值匹配时执行一些代码。它将技术上工作,但效率非常低,我敢打赌它有更好的功能,而且不使用静态值。
那么有什么功能可以帮助我在简单快速的事情上实现我的目标吗?
答案 0 :(得分:2)
您无法检查数组中的元素。
试试这个:
function validate() {
if (unAllowedUserNames.indexOf(username.value)>-1) {
alert("Unallowed username!");
} else {
alert("Okay");
}
}
答案 1 :(得分:0)
试
function validate() {
if (unAllowedUserNames.indexOf(username.value) !== -1 ) {
alert("Unallowed username!")
} else if (unAllowedUserNames.indexOf(username.value) === -1) {
alert("Okay")
}
}