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 に答える