我正在编写一个iPhone应用程序,它从用户那里获取一些数据并将其上传到服务器。上传的数据将显示给同一程序的其他用户(除此之外还有更多内容,但为了保持简单......)。上传的数据基本上只有三个字符串:一个名称(最多50个字符),一个标题(最多50个字符)和一些文本(几乎无限制的字符)。我需要的基本上是一个功能,服务或算法,它可以检测数据输入的有效性。它必须能够检测一系列重复的字符,某些“非法”字,异常的空格等。所以我的问题是;是否存在用于此类数据验证的C或Objective-C库(内置或开源),否则,我将如何进行此类检查?
以下是好的和坏的数据的两个例子:
好的:
Name: "John Aaron Smith" Title: "Why am I still here?" Text: "Can anybody please help me? I'm feeling lonely!"
坏:
Name: "f**k you, kldsanfklds" Title: "Only $99. Buy Now. Only $99" Text: "ndsaklgnvds lakævndsaklæfhadsæhdsjka fhdskjafhdskj lafhsdkhf. €#&/ #&()(/&%& ># €%€#% €#& hidosæahviædshvidshfiodsa. adsifjDSILFJIDSH \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
我知道对这么多案例采取预防措施将很困难,但是这个算法/库只需要过滤最糟糕的垃圾邮件。我还将在最终数据库提交之前查看数据,但当然垃圾邮件越少,我就越容易获得。
此致, BEN。
编辑:我最“流利”的语言是客观C语言,但我在C语言方面也做得很好,而且我对PHP和JAVA有所了解。我可能很难理解其他语言的库/示例,并将其“翻译”为有效的iPhone语言。 编辑编辑:我不是在寻找过于复杂的东西。只是一种简单的方法让我做粗剪。答案 0 :(得分:1)
这是一个需要解决的very difficult问题。我不会尝试创建自己的垃圾邮件检测,我会使用已经存在并具有良好声誉的解决方案,例如SpamAssassin。
答案 1 :(得分:1)
你见过Mollom吗?它有一个bunch of developer libraries(php,ruby,perl等)与Mollom服务器通信以确定条目的垃圾邮件。将其中一个翻译成Objective-C并不难。
答案 2 :(得分:1)
我做了类似于你想要的东西,但它是在php中。我处理的所有文本都是用验证码输入的,所以我阻止的是无用的评论垃圾邮件,类似于你的坏例子。这是我到目前为止已经阻止了80%的垃圾。它可能会阻止来自拼写习惯不好的人的一些有效文本,但我更喜欢手动编辑文本。
您可以通过阻止带有可疑字符的文字来添加此内容,例如%^ [] 另外,你可以编译一个不应该彼此相邻的字符列表,例如: fd,gf,kp,yt,vnd 此时,您需要通过添加算法进行自动化。这意味着算法需要理解一些语法,整个过程将开始在强度上倍增。在这一点上,任何其他事情都无法理解。