Javascript 比较两组文本

Javascript 比较两组文本,javascript,string,text,compare,Javascript,String,Text,Compare,我有两段文字,一段保存在文件中,另一段是用户输入的内容,用户愿意写相同的实际段落。现在我想比较两者,告诉用户复制同一段落的效率。关于如何做有什么技巧吗? 我在想这些问题,这些问题使事情变得复杂 如果用户拼错了一个单词怎么办 如果用户跳过了中间的一个单词呢 如果用户跳过了两个单词,而文本的其余部分是相同的,该怎么办 您正在寻找友好的输出。试着这样做: 样本应足够简单: var diff = diffString( "The red brown fox jumped over the ro

我有两段文字,一段保存在文件中,另一段是用户输入的内容,用户愿意写相同的实际段落。现在我想比较两者,告诉用户复制同一段落的效率。关于如何做有什么技巧吗? 我在想这些问题,这些问题使事情变得复杂

  • 如果用户拼错了一个单词怎么办
  • 如果用户跳过了中间的一个单词呢
  • 如果用户跳过了两个单词,而文本的其余部分是相同的,该怎么办

您正在寻找友好的输出。试着这样做:

样本应足够简单:

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

工作示例:

对输入和文件进行区分,这里有一个javascript库
将准确地告诉您有什么不同,然后您可以使用此信息来确定复制的效率

您可以通过两种方式完成此操作:

  • 这篇报道相当准确:

    测量用户写入所用的时间

    使用“拆分”将文件中的每个单词和输入的文本组成一个数组

    将用户输入的每个单词与列表中的相似单词进行比较,并与之前和下一个单词进行比较(因为您需要2查看他是否跳过了一个单词,否则…所有这些单词都会出错)

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

    报告

  • 在两个字符串上使用levenstein距离(是的……将所有文本视为单个字符串)

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


  • 你可以研究Hirschberg的算法,我相信它是Levenstein编辑距离的一个派生。一个问题:你将如何访问“保存在文件中的文本”?您知道您不能使用Javascript访问用户计算机中的任何文件,对吗?该文本是否在远程服务器中,而您使用的是AJAX?或者它与您的页面一起加载,而您使用DOM访问文本?它加载在页面上