我想在JavaScript中执行允许/宽松字符串比较,如下所示:
Morocco = Moroco = Moroko = Morokko = Marocco = Maroco
Russia = Rusia
US = USA
Bucharest = Buharest
Afghanistan = Afganistan
Bangkok = Bankok
etc..在与第三方API一起操作时,将使用这些比较。我不会在我的应用程序中基于它们做出任何选择,但我的目标是为用户提供最佳选项。用户将决定什么对他来说是好的。
你能给我指出正确的路吗?我想到的唯一办法就是使用字符校验和并对它们进行比较。也许还有更好的方法?
如果能得到一个像这样的“匹配整数”也会很好:
var n = compare("Morocco", "Marocco"); // n = 95
var m = compare("Morocco", "Marokko"); // n = 85但如何做到这一点呢?
谢谢。
发布于 2013-12-17 00:50:46
我怀疑你会从校验和中得到一些东西。
如果你不想要一个库,而只需要一个简单的算法,你可以计算Levenshtein distance。在简单的无字典解决方案中,它可能是最好的。
如果你想要更强大的功能,我建议你开始学习approximate string matching并搜索relevant libraries。
https://stackoverflow.com/questions/20616169
复制相似问题