我将不胜感激以下任何帮助,
我在 HTML5 中有 2 个文本区域
第一个文本区域是只读的并且包含一个特定的短语。(例如:请立即复制此文本)
第二个文本区域就在第一个文本区域下方,用户必须在其中复制文本区域 1 中的文本。
现在我需要检查第二个文本区域中的文本是否与第一个文本区域中的文本匹配,如果不匹配,则返回多少字不匹配
那么必须将不匹配的单词数输入mysql数据库,否则为0(没有不匹配的单词)
在此先感谢您的帮助
我将不胜感激以下任何帮助,
我在 HTML5 中有 2 个文本区域
第一个文本区域是只读的并且包含一个特定的短语。(例如:请立即复制此文本)
第二个文本区域就在第一个文本区域下方,用户必须在其中复制文本区域 1 中的文本。
现在我需要检查第二个文本区域中的文本是否与第一个文本区域中的文本匹配,如果不匹配,则返回多少字不匹配
那么必须将不匹配的单词数输入mysql数据库,否则为0(没有不匹配的单词)
在此先感谢您的帮助
我认为这篇文章正是您正在寻找的。
http://ejohn.org/projects/javascript-diff-algorithm/
我也找到了这个项目。还有demo,看看。
https://github.com/pifleo/jsdifflib
根据需要调整此示例,您就完成了。
只是试图创建一个通用函数。
试试小提琴
compareText = function (str1, str2, trimStr, lowerCaseStr, callback, separator) {
if (lowerCaseStr === true) {
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
}
var array1 = new Array();
var array2 = new Array();
var mistakes = {
missed: [],
wrongTyped: []
};
separator = separator || ' ';
array1 = str1.split(separator);
array2 = str2.split(separator);
var finalLength = array1.length;
if (array2.length > array1.length) finalLength = array2.length
for (var i = 0; i < finalLength; i++) {
var val1 = array1[i];
var val2 = array2[i];
if (val1 !== val2) {
if (typeof (val2) !== 'undefined') {
mistakes.wrongTyped.push(val2)
} else {
mistakes.missed.push(val1)
}
}
}
if (typeof (callback) !== undefined) {
callback(mistakes);
} else {
return mistakes;
}
}