1

我目前正在编写一个 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"

我知道对这么多情况采取预防措施会很困难,但是这个算法/​​库只需要过滤最糟糕的垃圾邮件。我还将在最终数据库提交之前查看数据,但当然垃圾邮件越少,我就越容易拥有它。

你的,本。

编辑:我最“流利”的语言是 Objective-C,但我在 C 方面也做得很好,而且我了解 PHP 和 JAVA。其他语言的库/示例对我来说可能难以理解,并且“翻译”成有效的 iPhone 语言。

编辑编辑:我不是在寻找过于复杂的东西。对我来说只是一个简单的粗剪方法。

4

3 回答 3

1

这是一个非常难以解决的问题。我不会尝试创建自己的垃圾邮件检测,我会使用已经存在并享有良好声誉的解决方案,例如SpamAssassin

于 2009-12-04T16:36:18.087 回答
1

你见过莫洛姆吗?它有一堆开发人员库(php、ruby、perl 等)与 Mollom 服务器通信以确定条目的垃圾信息。将其中之一翻译成 Objective-C 并不难。

于 2009-12-04T16:39:58.940 回答
1

我做了一些类似于你想要的东西,但它在 php.ini 中。我处理的所有文本都是用验证码输入的,所以我阻止的是类似于你的坏例子的无用评论垃圾邮件。这是我到目前为止所得到的,它已经阻止了 80% 的垃圾。它可能会阻止一些拼写习惯不好的人的有效文本,但我更喜欢手动编辑文本。

  1. 检查文本不为空并验证它不是全是空格
  2. 检查长度,我至少使用 3 个字符。
  3. 检查一系列匹配的字符,例如!!!!!! 我用的不超过 3 个。
  4. 检查超过 15 个字符的单词。例如 lakævndsaklæfhadsæhdsjka
  5. 将文本的副本转换为小写并遍历坏词字典

您可以通过阻止带有可疑字符的文本来添加这一点,例如 %^[] 另外,您可以编译一个永远不应彼此相邻使用的字符列表,例如 fd、gf、kp、yt、vnd 此时您需要自动化通过添加到算法中。这意味着算法需要理解一些语法,整个过程的强度将开始成倍增加。在这一点上,其他任何事情都超出了我的理解。

于 2011-03-10T23:50:35.953 回答