2012-05-14 31 views
0

我有一個下拉列表中的單詞列表,我有一個單詞正在尋找合適的合作伙伴(用戶正在選擇它) 爲了讓用戶更容易(因爲該列表可能很長,並且庫存必須很快)我想給出一個可能的選項。從下拉列表中選擇字母順序「最接近」的選項

我已經看過我如何改變選定的單詞。

我想找到字母「最近」的選項,但我不IDEAR我怎麼能找出哪些詞是最近neigbore ....

我已經用我能想到的讓所有的話一派一個解決方案,但我無法找到一些東西。

有人有一個想法我怎麼能做到這一點?

+0

如果你想從PHP做到這一點,看看這些功能:['similar_text'(http://us.php.net/similar_text) ,['levenshtein'](http://us.php.net/levenshtein),['soundex'](http://us.php.net/soundex),['metaphone'](http:// us .php.net /音位)。如果您正在尋找Javascript解決方案,那麼搜索這些特定的術語可能會有所幫助。 – DCoder

回答

0

如果按字母順序表示從左側讀取的匹配字母,答案很簡單。只需查看單詞的每個字母並將其與選擇下拉菜單中的單詞進行比較即可。共享最長起始子字符串的詞是「最近的」。

1

levenshtein function將計算2個字符串的「接近度」。您可以對與用戶字符串相關的單詞進行排名,並返回具有最低值的字符串。

+0

萬分感謝!我認爲這將是解決方案:) – user1369685

+0

好吧,這不是真的給出了一個好的解決方案...我想我會嘗試別的... – user1369685

0

JavaScript中的簡單(可能最快)的事情就是找到(由二進制搜索)在哪裏使用<>字符串運算符將單詞放入選項字詞的排序數組中。

對於更先進,更精確的結果,使用Levenshtein distance

+0

我試過levenshtein距離,但是這並沒有給出一個有用的解決方案...當我比較與<它總是給最後的選擇作爲解決方案(這也是錯誤的)... – user1369685

+0

@ user1369685你確定這是一個方法的問題,而不是你的代碼? – ChrisW

相關問題