比较两组文字

时间:2011-02-20 11:07:21

标签: javascript string text compare

我有两段文字,一段保存在文件中,另一段则是愿意写同一段实际段落的用户输入的段落。现在我想比较两者并告诉用户他复制相同段落的效率如何。关于如何做的任何技巧? 我正在考虑这些使它变得复杂的问题。

  • 如果用户拼写错误
  • ,该怎么办?
  • 如果用户跳过
  • 之间的单词,该怎么办?
  • 如果用户跳过两个单词并且其余文本相同,该怎么办?

3 个答案:

答案 0 :(得分:3)

您正在寻找友好的diff输出。尝试这样的事情: Javascript Diff Algorithm

样本应该足够简单:

var diff = diffString(
   "The red brown fox jumped over the rolling log.",
   "The brown spotted fox leaped over the rolling log"
);

工作示例:http://jsbin.com/uhalo3

答案 1 :(得分:3)

在输入和文件上做一个差异,这里有一个javascript库 http://code.google.com/p/google-diff-match-patch/会告诉您具体的不同之处,然后您可以使用此信息来确定复制效率

答案 2 :(得分:1)

您可以通过两种方式执行此操作:

  1. 这个提供了一个非常精确的报告:

    衡量用户写作的时间

    使用split可以为文件中的每个单词创建一个数组,并为输入的文本添加相同的数组

    将用户输入的每个单词与列表中的相似单词进行比较,并将前一个单词与之前的单词进行比较(因为你需要2看看他是否跳过一个单词,否则......那里的所有内容都会出错)

    计算错误(您可以使用levenstein距离来比较每个单词中的错误数量)

    提供报告

  2. 在2个字符串上使用levenstein距离(是的...将所有文本视为单个字符串)。

    这个很容易使用......但报告并不那么精确。