Javascript,var包含

时间:2015-09-21 16:06:37

标签: javascript contains

我目前使用此脚本:

wHandle.setNick = function (arg) {
    userNickName = arg;
    var fnicks = ["porno","ibne","amcık","amcik","piç","salak","orospu","pkk","sik","kürdistan","kurdistan","kÜrdistan","kürt","sikeyim","sıkeyim","götoş","yönetici","YÖNETICI","YONETICI","yonetici","admın","admin","yarah","yarrah","agario","sike","s1ke","anan"];
    var nctr = arg.toLowerCase();
            if(fnicks.indexOf(nctr) > -1) {
        alert("Unknown Nickname!");
        } else {
    hideOverlays();
    sendNickName();
    wjQuery("#mini-map-wrapper").show();
    userScore = 0
    wjQuery(".btn-needs-nick").prop("disabled", false);
     }     
};

我想制作某种过滤器,以便它阻止这些昵称,但它并没有覆盖我的所有情况。例如,它会阻止色情,但不会阻止色情

我希望它使用if(contains)

2 个答案:

答案 0 :(得分:0)

好吧,我只是遍历数组,并搜索你传递的参数(在这种情况下为nctr)是否包含当前条目(fnicks[i])。 您可以按常规console.log()

替换alert()
var arg = "pornoo";        
var fnicks = ["porno","ibne","amcık","amcik","piç","salak","orospu","pkk","sik","kürdistan","kurdistan","kÜrdistan","kürt","sikeyim","sıkeyim","götoş","yönetici","YÖNETICI","YONETICI","yonetici","admın","admin","yarah","yarrah","agario","sike","s1ke","anan"];
var nctr = arg.toLowerCase();
for(var i=0,c=fnicks.length;i<c;i++) {
    if(nctr.indexOf(fnicks[i]) > -1) {
        console.log('boom'); 
    }
}

答案 1 :(得分:0)

你基本上已经向后完成了你的逻辑。除了检查昵称是否在您的阻止列表中之外,您还可以更好地检查阻止列表中的元素是否在您的昵称中,如下所示:

var nick = args.toLowerCase();
for (var i; i < fnicks.length; i++) {
  if (nick.indexOf(fnicks[i]) != -1) {
    //bad name!
  }
}