我如何检测(使用正则expression式或启发式)网站链接在一个文本string,如评论? 目的是防止垃圾邮件。 HTML被剥离,所以我需要检测复制和粘贴的邀请。 由于大多数用户无法成功进入该页面,所以垃圾邮件发布者不应该经济地发布链接 。 我希望提出build议,参考或讨论最佳做法。 一些目标: 像结构良好的URL( http://some-fqdn/some/valid/path.ext ) url但没有http://前缀(即有效的FQDN +有效的HTTPpath) 任何其他有趣的业务 当然,我正在阻止垃圾邮件,但同样的过程可以用来自动链接文本。 思路 这是我在想的一些事情。 内容是本土语言散文,所以我可以触发,愉快的检测 我是否应该首先www .example.com所有的空白,以捕捉“ www .example.com ”? 普通用户是否知道要自己删除空间,或者做任何浏览器“我是什么意思”并将其剥离? 也许多次通过是一个更好的策略,扫描: 格式良好的url 所有非空白,然后是'。' 之后是任何有效的TLD 还要别的吗? 相关问题 我已经阅读了这些内容,现在在这里logging下来,所以如果你愿意,你可以在这些问题中引用正则expression式。 用HTML链接javascriptreplaceURL 什么是最好的正则expression式来检查一个string是否是一个有效的URL 获取URL的部分(正则expression式) 更新和总结 哇,我有一些非常好的启发式在这里列出! 对我来说,最好的巴克是一个综合以下内容: @Jon Bright的检测顶级域名(TLD)的技术(一个很好的防御阻塞点) 对于那些可疑的string,用@caparreplace点状字符 一个好看点的angular色是@Sharkey的下标· (即“ · ”)。 · 也是一个字的边界,所以很难随便复制和粘贴。 这应该使垃圾邮件发送者的CPM足够低以满足我的需求; “标志不当”的用户反馈应该抓住其他的东西。 列出的其他解决scheme也非常有用: 去掉所有的虚线四边形(@ Sharkey对自己的答案的评论) @ Sporkmonger对客户端Javascript的要求是在表单中插入一个必需的隐藏字段。 Ping URL服务器端来确定它是否是一个网站。 (也许我可以通过SpamAssassin或另一个贝叶斯filter按照@Nathan运行HTML。) […]
Akismet在检测垃圾评论方面做得非常出色。 但是评论并不是现在垃圾邮件的唯一forms。 如果我想要像akismet这样的自动检测社交网站上的色情图片,允许用户上传他们的图片,头像等? 已经有一些基于图像的search引擎,以及面部识别的东西,所以我认为这不会是火箭科学,它可以做到。 但是,我不知道这些东西是如何工作的,如果我想从头开始,我该如何去做。 我该如何开始? 有没有开源项目呢?