【发布时间】:2016-04-12 17:13:27
【问题描述】:
我有一个 JavaScript 数组,其中包含一些在请求创建用户帐户时无法使用的单词。
我正在尝试遍历请求的帐户并根据单词过滤器检查它们。如果它们包含任何单词,则该值将移动到“无效帐户”数组中。
// Create our arrays
var blacklist = ["admin", "webform", "spoof"];
var newAccounts = ["admin1@google.com", "interweb@google.com", "puppy@google.com"];
var invalidAccounts = [];
// I need to check if any of the new accounts have matches to those in the blacklist.
// admin1@google.com would need to be pushed into the invalidAccounts array because it
// contains the word admin. Although interweb contains the word web, it does not contain
// the full word, webform, so should be ignored.
// Loop over the blacklist array
for(var x = 0; x < blacklist.length; x++){
if(blacklist[x].indexOf(newAccounts) > -1){
alert(blacklist[x] + " is in the blacklist array");
// Push the newAccounts value into the invalidAccounts array since it contains
// a blacklist word.
} else {
alert('no matches');
}
}
我需要在上面的代码中进行哪些更改以使其与上述部分字符串匹配?
上述代码的小提琴:https://jsfiddle.net/1qwze81o/
【问题讨论】:
-
你需要循环两次(因为现在已经设置好了)。就个人而言,我会先遍历
newAccounts,然后根据blacklist的每个内容检查每个内容。看起来很简单。 -
您可以针对电子邮件测试黑名单条目,而不是其他方式。此外,您的黑名单中有网络表单,而不是网络。因此,如果您过滤包含网络的电子邮件,则必须对其进行更改。
标签: javascript jquery arrays