2011-09-21 40 views
0

当包含该词的字符串发生更改时,是否有某种算法(或其JavaScript实现)可以查找某个词的位置移动量?查找索引在字符串更改时移动的行数和字符数

我的项目是一个基于CodeMirror的在线编辑器,当使用MobWrite协作服务将新数据添加到代码中时,我需要重新定位光标。

因此,要将光标位置设置为当前用户正在编辑的单词,我想我需要计算其位置&中的移位量并将其添加到原始光标位置。

解决方案: 现在,我试图实施MobWrite使用的方法。

谢谢大家的帮助。

+0

可不可以给你在找什么一些例子吗?原始字符串,更改的字符串,结果。否则Levenshtein距离几乎是你可以得到的唯一答案,目前还不清楚这是否是你想要的。 –

+0

@WladimirPalant,由于它是一个协作编辑器,数据不断变化,所以我需要一种方法来保持游标的位置与当前用户的输入一致。 – Sathvik

回答

1

你可能想这样的:http://en.wikipedia.org/wiki/Levenshtein_distance

在该页面中其他类型的距离。检查他们是否更好地满足您的需求。

+0

我不清楚如何使用列夫的距离。 – Sathvik

+0

@ user937891:Levenshtein算法允许您计算将旧文本转换为新文本并实际获取这些操作所需的操作次数。所以你可以找出哪些文本部分已被插入或删除,并相应地调整光标位置。 –

+0

您将使用仅包含添加和删除(最长公共子序列)的变体。然后减去它们,这就是你应该移动光标的程度。 – Ariel