jquery / javascript中的近似文本匹配

时间:2012-10-31 15:41:43

标签: javascript jquery html

有没有办法在jquery中进行近似文本匹配?

我有一个正确答案的div

<div class="correctAnswer" style="display:none;">CORRECT</div>

我希望当输入标签中的答案是近似正确时显示一些文字

<input type="text"> //lets guess i type "CORREC"
<div class="Approximate" style="display:none;">Your answer is Approximate correct!</div>

1 个答案:

答案 0 :(得分:2)

你可以使用Levenshtein Distance算法来做到这一点,它会给你一个字符串相似性的分数。

它是well described on wikipedia,已被用于许多不同的语言/技术。

伪算法是:

int LevenshteinDistance(string s, string t)
{
  int len_s = length(s), len_t = length(t), cost = 0

  if(s[0] != t[0]) then cost = 1

  if(len_s == 0) then      return len_t
  elseif(len_t == 0) then  return len_s
  else                     return minimum(LevenshteinDistance(s[1..len_s-1], t) + 1,
                                      LevenshteinDistance(s, t[1..len_t-1]) + 1,
                                      LevenshteinDistance(s[1..len_s-1], t[1..len_t-1]) + cost)
}

您可能还想尝试this javascript implementation on github(这不是我的,BTW)。