下面是我的代码,它向我展示了当我插入文本框时插入杀戮、战斗、拍打的通知。 但是我想阻止文本框中所有可能的不适当的单词,例如 f**k 等。你们有什么想法吗?谢谢
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<div id="wrapper" style="width:600px; margin:0 auto;">
<h2></h2>
<input id="txtWords" style="width:300px;" />
<br />
<input type="button" id="btnCheck" onclick="fnCheckForRestrictedWords();" value="Check For
Restricted Words">
</div>
<script type="text/javascript">
function fnCheckForRestrictedWords() {
var restrictedWords = new Array("kill", "fight", "slap");
var txtInput = document.getElementById("txtWords").value;
var error = 0;
for (var i = 0; i < restrictedWords.length; i++) {
var val = restrictedWords[i];
if ((txtInput.toLowerCase()).indexOf(val.toString()) > -1) {
error = error + 1;
}
}
if (error > 0) {
alert('You have entered some restricted words.')
}
else {
// Your logic here
}
}
</script>
</body>
</html>
您需要定义所有"坏"词并将它们放入黑名单。您可以使用一些现有列表作为列表的起点:
https://github.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and-Otherwise-Bad-Words/blob/master/en
https://github.com/dariusk/wordfilter/blob/master/lib/badwords.json
http://www.bannedwordlist.com/lists/swearWords.txt
http://www.frontgatemedia.com/new/wp-content/uploads/2014/03/Terms-to-Block.csv
来源: 红迪网
如果要包含混淆的"坏"词,则可能还需要将 添加到列表中。
includes()
方法应该有效:txtInput.include(restrictedWords[i](,它返回真或假。您还想包含更多坏词和不同的书写方式