常见词在不同领域中检测jquery

时间:2013-09-09 05:46:55

标签: javascript jquery

在jquery中,您如何确定一个元素是否使用了另一个元素中使用的单词?例如:如果一个字段包含值:fishbucket,另一个字段包含fishdome,您将如何扫描两个字段以获取常用字,在这种情况下是鱼?或者甚至是数字,比如一个包含值12793的字段和另一个包含值93127的字段,公共数字是127.您是否需要列出常用单词并根据两个字段的值运行它?或者有没有办法确定常用单词而不运行每个确定的列表。我似乎无法找到起点,所以如果有人能给我一个开始的地方,那就太好了。

3 个答案:

答案 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)共享共同的子串。