在jquery中,您如何确定一个元素是否使用了另一个元素中使用的单词?例如:如果一个字段包含值:fishbucket,另一个字段包含fishdome,您将如何扫描两个字段以获取常用字,在这种情况下是鱼?或者甚至是数字,比如一个包含值12793的字段和另一个包含值93127的字段,公共数字是127.您是否需要列出常用单词并根据两个字段的值运行它?或者有没有办法确定常用单词而不运行每个确定的列表。我似乎无法找到起点,所以如果有人能给我一个开始的地方,那就太好了。
答案 0 :(得分:0)
首先列出表单中的所有值。
var inputvalue = []; //array declaration
$('input[type=text]').each(function(){
inputvalue.push($(this).val()); //saves value in array
});
然后循环遍历所有值以通过pattern matching获取常用字符串 你需要定义常用字符串应该是多少字符长。
答案 1 :(得分:0)
问题可以分解为寻找最长的共同子序列。
这是一个javascript实现,用于在2个单词之间查找LCS。您需要做的是按下数组中的所有单词,然后为要比较的每2个字符串调用LCS。 (如果返回长度> 1,则它们之间有一个共同的文本。)
有一些字符串匹配算法(基于哈希),您可能也想要谷歌搜索它们。仅在要求很大的情况下使用,对于通常情况,LCS实施应该足够了。
答案 2 :(得分:0)
不需要jquery。简单的javascript就可以了。我只能给你一个功能,找到最常见的起始字符串。
function commonStart(array){
var x = array.slice(0).sort(),
word1 = x[0],
word2 = x[x.length-1],
i= 0;
while(word1.charAt(i) == word2.charAt(i)) ++i;
return word1.substring(0, i);
}
e.g。
var testArray = ['testone','testtwo','testthree'];
commonStart(testArray);
将产生'测试'
在生物信息学中执行此类操作的标准工具是BLAST程序。它用于比较分子的两个片段(如DNA或蛋白质),以找到它们彼此对齐的位置 - 基本上两个字符串(有时大小为多GB)共享共同的子串。