我正在尝试阻止我网站上的某些帖子,这主要是为了让它看起来像包含一些内容但只是垃圾邮件。具体来说,帖子是一些随机单词,一些换行符和一个随机字符。
所以,我知道一些合法用户可能会使用两个换行符(在段落之间创建一个空行),但我认为3+可以被标记为垃圾邮件。
我在regex101上测试了这个正则表达式并且它工作正常,但是当我在我的网站上测试时,从未触发,任何关于为什么的想法?当我取消注释回显线时,它会显示我的测试数据的数字4,所以我知道它看到了换行符..我的正则表达式是不正确形成的?!
测试数据:
var touchmove = false;
$(window).on("touchmove",function(){
touchmove = true;
});
$(window).on("touchend",function(e){
if (!touchmove){
e.preventDefault();
e.stopPropagation();
e.target.click();
}
else{
touchmove = false;
}
});
代码:
This is a potential
spam post
答案 0 :(得分:0)
数据可能包含CRLF
,而不只是LF
。
substr_count
测试不关心交错CR
,但你的正则表达式模式确实如此。
使用(\r?\n)
代替\n
同时允许CRLF
和LF
(不同的浏览器/操作系统,可能会使用不同的新行):< / p>
if (preg_match('/(\r?\n){3,}./', $lowercaseBody)){
error("Stop Spamming my chan you .");
}