2

我正在使用Rangy 插件和 textRange 模块,但出现了问题。然后我在这样的文本“расстояние {москва} геленджика”(括号中的选定文本)上使用 selection.expand('word') 将它扩展到相邻的单词,我得到这样的选定文本“{расстояние москва геленджика}” . 但在这种情况下,我已经选择了一个单词!我只需要在 м{оск}ва 情况下扩展到 {москва}。

我该如何解决这个问题?导致此问题的不同语言之间有什么区别?

4

1 回答 1

2

在 Rangy 论坛上回答了这个问题。如果该链接停止工作,这是我写的:


它默认设置为拉丁文,但您可以在expand()方法中指定正则表达式。默认值为/[a-z0-9]+('[a-z0-9]+)*/gi,这是非常基本的,但作为英语的合理默认值提供。

一个简单的例子:

sel.expand("word", {
    wordOptions: {
        wordRegex: /[a-z0-9\u0400-\u04FF]+('[a-z0-9\u0400-\u04FF]+)*/gi
    }
});

我不是西里尔文专家,所以我只是在正则表达式的字符类中添加了一些西里尔文字符以用于说明目的。您可以使用XRegExp及其Unicode 插件做得更好:

sel.expand("word", {
    wordOptions: {
        wordRegex: XRegExp("[\\p{L}\\d]+('[\\p{L}\\d]+)*", "gi")
    }
});
于 2013-10-26T22:31:28.630 回答