如何使用javascript进行字符串比较

如何使用javascript进行字符串比较,javascript,diff,Javascript,Diff,我使用两个文本区域。该项目是关于在线打字测试。我使用了两个文本区域。第一个textarea包含要在第二个textarea中键入的内容。为了计算网络打字速度,我需要一个javascript diff算法 algo符合我的所有要求..哪个使用这个 用于区分两个字符串的javascript文件。及 是一个使用相同javascript文件的演示…你应该有这个演示的外观。但是我怎么能知道正确的字数呢?问题是提供的javascript文件没有使用任何注释,也没有提供任何文档 您可以结合使用a来确定准确性

我使用两个文本区域。该项目是关于在线打字测试。我使用了两个文本区域。第一个textarea包含要在第二个textarea中键入的内容。为了计算网络打字速度,我需要一个javascript diff算法

algo符合我的所有要求..哪个使用这个

用于区分两个字符串的javascript文件。及


是一个使用相同javascript文件的演示…你应该有这个演示的外观。但是我怎么能知道正确的字数呢?问题是提供的javascript文件没有使用任何注释,也没有提供任何文档

您可以结合使用a来确定准确性,并使用一些基本的字符串操作来计算不同的单词。这是可以改进的,但你会想到:

function wordAccuracy(str1, str2) {

  var len = str1.length,
      distance = levenshtein(str1, str2),
      words1 = str1.split(' '),
      words2 = str2.split(' ');

  return {

    accuracy: 100 - (0|(distance * 100) / len) +'%',

    fail: words1.filter(function(word, idx){
      return word != words2[idx];
    }).length
  }
}

// Example:

var str1 = 'Lorem ipsum dolor sit amet consectetur adipiscing elit';
var str2 = 'Lorme ipsmu dolor sit maet cnsectetur adipiscing elot';

console.log(wordAccuracy(str1, str2));
//^ {
//    accuracy: '86%'
//    fail: 5
//  }

我不确定你是否需要比我上面的评论更多的解释。我喜欢差异突出显示你的链接显示,但如果你所追求的只是计算差异,为什么这样的事情不起作用

var arr1=$('#text1').val().split('');
var arr2=$('#text2').val().split('');//根据您想要的字符串或正则表达式进行拆分。
var-diff=0;
对于(变量i=0;i
如果你想找一些简单的东西,似乎你可以在空格/标点上进行分割,并计算正确数组和输入数组之间的差异,这似乎是我参加的大多数在线打字测试所做的。@b请给我一些建议,但我的要求正是我所说的,或者你可以在演示中看到。我一切都做得很好。。但我只想计算用户输入的正确单词。这将是一个很大的帮助。@b请你给我任何链接到你建议的演示。首先,我用jsfiddle添加了一个答案
var arr1 = $('#text1').val().split(' ');
var arr2 = $('#text2').val().split(' '); // split on whatever string or regex you want.

var diffs = 0;
for (var i = 0; i < arr1.length; i++) {
    if (arr1[i] !== arr2[i]) {
        diffs++;
    }
}

alert(diffs);