我正在使用Rangy plugin和textRange模块,但是存在问题。然后我在这样的文字“расстояние{москва}геленджика”(括号中的选定文字)上使用selection.expand('word')Rangy将它扩展为相邻的单词,我得到了这样的选定文本“{расстояниемосквагеленджика}” 。但在这种情况下,我已经有一个选定的单词!我只需要在м{оск}情况下扩展到{москва}。
我该如何解决这个问题?引起这个问题的不同语言之间有什么区别?
答案 0 :(得分:2)
我answered this on the Rangy forum。如果链接停止工作,这是我写的:
默认设置为拉丁文脚本,但您可以在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 plugin:
做得更好sel.expand("word", {
wordOptions: {
wordRegex: XRegExp("[\\p{L}\\d]+('[\\p{L}\\d]+)*", "gi")
}
});