使用jquery或javascript停止滥用的单词

时间:2015-10-08 05:52:29

标签: javascript jquery html

我想用正则表达式来过滤一些单词(性别等),但是有些时候人们会使用那些单词(坏)(坏)(b / a / d)等等如何使用正则表达式来阻止这些单词

这只是我需要的一个词来过滤我写的那些代码,但它不能完美地运作

class a(object):
  def __init__(self, b):
    self.b=b
  def write(self, s):
    self.b.write(unicode(s,'utf-8'))

buf=io.StringIO()
print >> a(buf), '...'

3 个答案:

答案 0 :(得分:4)

试试这个:

return "";

这是阻止人们使用您不喜欢的单词的唯一方法:不要让他们使用任何单词。

即使你发现了某些单词,你也会遇到很多问题,其中很多都是在你的问题评论中给你的。交换像@ $$这样的字符太常见了,而且更神经质的人会知道看起来与拉丁字符相同的西里尔字符 - 尝试用你的正则表达式检测sеx

采用更加社会化的方法解决这个问题会更有效率。如果您的社区不愿意发布这样的话,那么就不用担心了。如果你调整包含这些词的罕见帖子,那么犯罪者将无法再次这样做,而其他人可能会在跟随他们的脚步之前三思而后行。我从来没有对用户提交的内容进行任何过滤,虽然我们偶尔会得到便盆,但他们总是超级快速地处理,而不是试图阻止他们在第一名。

答案 1 :(得分:0)

已编辑:只需使用以下代码:



function isAbusive(str) {
  var badWords = ['bad', 'worst'];
  var isTrue = false;
  if(str) {
     for (var i = 0; i < badWords.length; i++) {
       isTrue = !!(str.replace(/\W|\s/g, '').toLowerCase().indexOf(badWords[i]) + 1);
       if(isTrue) break;
     }
  }
  return isTrue;
}


var comments = document.getElementsByTagName("p");

for (var i = comments.length - 1; i >= 0; i--) {
  console.log(i, comments[i].innerHTML)
  if (isAbusive(comments[i].innerHTML)) {//you can check this comment
    alert("there is bad word");
    comments[i].parentNode.removeChild(comments[i]);
  }

}
&#13;
<p class="user1">I want to do "b/a/d" activity</p>
<p class="user2">I want to do "worst" activity</p>
<p class="user2">I want to do "good" activity</p>
<p class="user2">bad activity</p>
<p class="user3">W/O/R/s/T activity</p>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

真的不会建议这样做,因为它可能会产生一些奇怪的情况,例如过滤掉在上下文中完全没法的事情,比如“那只狗是男性”。

说过你可以做点什么......它应该有用,它不完美,但是它可以做到这一点。

strncpy(citizen.name, "Some name", NAME_SIZE);

希望有所帮助!

编辑花了我很长时间才编写代码部分我没有看到其他答案。 跟那个imo一起看起来更漂亮,更通用。