如何在flex 4中的textarea中获取当前光标位置下的单词

发布于 2024-12-07 18:13:30 字数 149 浏览 0 评论 0原文

我正在使用 flex4 创建编辑器。我需要获取当前光标位置下的单词。例如,这是文本区域中的文本,“嗨,这是一个示例”,光标位于“this”单词下。如果我点击一个按钮,那么必须返回这个“this”单词。所有这些我需要在flex4和actionscript3中实现。请提供任何建议或帮助。

I'm using flex4 for creating an editor. There I need to get word under current cursor position. say for example, this is the text in textarea, "Hi, this is a sample" and cursor under "this" word. If I click a button, then this "this" word must be returned. All this I need to implement in flex4 and actionscript3. Please provide any kind of suggestion or help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

失去的东西太少 2024-12-14 18:13:30

看一下 TextField.caretIndex。它是光标在文本字段中的索引位置。然后您需要使用该位置提取当前单词。一种方法是在两个方向上查找空格,但我确信有一些奇特的正则表达式可以使用插入符号索引为您完成此操作。

Take a look at TextField.caretIndex. It is the index position of the cursor in the textfield. Then you need to extract the current word using that position. One way is to look for spaces in both directions but I am sure there is some fancy Regular Expression out there that can do it for you using the caret index.

装纯掩盖桑 2024-12-14 18:13:30

我需要这样一个函数来进行代码提示,这种方法效果很好:

public function currentWord(ta:RichEditableText):String
{
    var wordBegin:int = ta.selectionAnchorPosition;
    var wordEnd:int = ta.selectionAnchorPosition;
    // while the previous char is a word character... let's find out where the word starts
    while (ta.text.charAt(wordBegin-1).search(/\w+/) > -1 && wordBegin > 0 ) { wordBegin--; }
    // while the next char is a word character... let's find out where the word ends
    while (ta.text.charAt(wordEnd).search(/\w+/) > -1 && wordEnd > 0 ) { wordEnd++; }
    return ta.text.substring(wordBegin, wordEnd);
}

I needed such a function for code hinting, this approach works nicely:

public function currentWord(ta:RichEditableText):String
{
    var wordBegin:int = ta.selectionAnchorPosition;
    var wordEnd:int = ta.selectionAnchorPosition;
    // while the previous char is a word character... let's find out where the word starts
    while (ta.text.charAt(wordBegin-1).search(/\w+/) > -1 && wordBegin > 0 ) { wordBegin--; }
    // while the next char is a word character... let's find out where the word ends
    while (ta.text.charAt(wordEnd).search(/\w+/) > -1 && wordEnd > 0 ) { wordEnd++; }
    return ta.text.substring(wordBegin, wordEnd);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文