2015-08-29 102 views
0

使用a Stackoverflow answer to this question,我這樣做是爲了檢查是否在禁止的話掃描句子被禁止的話

if ($.inArray(message, badwordsarray) !== -1){ 
    console.log("bad word found") 
} 

此作品在下面的例子中

var message = "blah" 
var badwordsarray = ["blah", "foo", "baz"] 
    if ($.inArray(message, badwordsarray) !== -1){ 
     console.log("bad word found") 
    } 

陣列存在於消息中的任何字但是,如果消息長度超過1且包含空格,則不會檢測到錯誤的單詞。在這個例子中,由於包含了開心詞,因此沒有檢測到壞詞

var message = "happy blah" 
    var badwordsarray = ["blah", "foo", "baz"] 
     if ($.inArray(message, badwordsarray) !== -1){ 
      console.log("bad word found") 
     } 

在Javascript中掃描禁止詞語的最佳方式是什麼?

+0

需要服務器端檢查。 Codecriminals輕鬆地使用思想控制檯來顛覆JavaScript。雙加ungood。 – Paul

回答

0

RegExp來救援!

var message = "happy blah"; 
var badwordsarray = ["blah", "foo", "baz"]; 

var containsBadWord = badwordsarray.some(function (word) { 
    return new RegExp('\\b' + word + '\\b').test(word); 
}); 

if (containsBadWord) { 
    console.log("bad word found"); 
} 
3

您需要標記消息字符串。

var message = "happy blah"; 
var badwordsarray = ["blah", "foo", "baz"]; 
var messageParts = message.split(" "); 
$(messageParts).each(function(i, item){ 
    if ($.inArray(item, badwordsarray) !== -1) { 
     console.log("bad word found:", item); 
    } 
}); 

http://jsfiddle.net/udd5k8j3/

0

另一種選擇是創建一個for循環和遍歷每個髒話。

var message = "happy blah" 
var badwordsarray = ["blah", "foo", "baz"] 

for(var i = 0; i < badwordsarray.length; i++) { 
    if(message.indexOf(badwordsarray[i]) !== -1) { 
     alert('bad word found'); 
     // You could also set a boolean variable to true when a word is found 
    } 
}