在 jquery 中,您将如何确定一个元素是否使用了另一个元素中正在使用的单词?例如:如果一个字段包含值:fishbucket,而另一个字段包含fishdome,您将如何扫描这两个字段以获取常用词,在这种情况下是fish?或者即使是数字,比如一个包含值 12793 的字段和另一个包含值 93127 的字段,常见的数字是 127。您是否需要制作一个常用单词列表并针对这两个字段的值运行它?或者有没有办法在不运行每个确定的列表的情况下确定常用词。我似乎找不到起点,所以如果有人能给我一个起点,那就太好了。
user2738336
问问题
238 次
3 回答
0
首先列出表单中的所有值。
var inputvalue = []; //array declaration
$('input[type=text]').each(function(){
inputvalue.push($(this).val()); //saves value in array
});
然后遍历所有值以通过模式匹配获得通用字符串, 您需要定义通用字符串应该有多少个字符长。
于 2013-09-09T05:58:32.183 回答
0
这个问题可以分解为找到最长的公共子序列。
这是一个用于在 2 个单词之间查找 LCS的javascript实现。您需要做的是将所有单词推送到一个数组中,然后为每个要比较的 2 个字符串调用 LCS。(如果返回长度>1,则它们之间有一个共同的文本)。
有一些字符串匹配算法(基于哈希),你可能也想用谷歌搜索它们。仅在需求巨大时使用,对于通常情况,LCS 实现应该足够了。
于 2013-09-09T06:02:31.963 回答
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);
}
例如
var testArray = ['testone','testtwo','testthree'];
commonStart(testArray);
将产生“测试”
在生物信息学中做这类事情的标准工具是BLAST程序。它用于比较两个分子片段(如 DNA 或蛋白质)以找到它们彼此对齐的位置 - 基本上是两个字符串(有时大小为数 GB)共享公共子字符串的地方。
于 2013-09-09T06:03:44.123 回答