我想用正则表达式来过滤一些单词(性别等),但是有些时候人们会使用那些单词(坏)(坏)(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), '...'
答案 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;
答案 2 :(得分:0)
我真的不会建议这样做,因为它可能会产生一些奇怪的情况,例如过滤掉在上下文中完全没法的事情,比如“那只狗是男性”。
说过你可以做点什么......它应该有用,它不完美,但是它可以做到这一点。
strncpy(citizen.name, "Some name", NAME_SIZE);
希望有所帮助!
编辑花了我很长时间才编写代码部分我没有看到其他答案。 跟那个imo一起看起来更漂亮,更通用。