Flex Textarea:粘贴时去除换行符

发布于 2024-11-28 19:24:16 字数 189 浏览 0 评论 0原文

如果我在 Spark TextArea 中给出restrict="[az][AZ]",并将内容粘贴到其中,则所有换行符都会被删除。手动按 Enter 效果很好。问题出在哪里?

<s:TextArea restrict="[A-Z][a-z]"/>

mx TextArea 工作正常。

If I give restrict="[a-z][A-Z]" in a spark TextArea, and paste content into it, all the line breaks are stripped. Manually pressing enter works fine. Where is the problem?

<s:TextArea restrict="[A-Z][a-z]"/>

The mx TextArea works fine.

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

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

发布评论

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

评论(2

澜川若宁 2024-12-05 19:24:16

如果您限制换行符,则换行符将不起作用。尝试这样做:

<s:TextArea restrict="A-Za-z\n"/>

Line breaks won't work if you restrict it. Try doing this:

<s:TextArea restrict="A-Za-z\n"/>
为人所爱 2024-12-05 19:24:16
protected function textArea_changingHandler(event:TextOperationEvent):void
        {
            if (event.operation is PasteOperation)
            {
                event.preventDefault();
                var txt:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT).
                    toString().replace(/[^A-Za-z0-9\s]/ig, "");
                var curPos1:Number = textArea.selectionAnchorPosition;
                var curPos2:Number = textArea.selectionActivePosition;
                if (curPos2 < curPos1)
                {
                    var t:Number = curPos1;
                    curPos1 = curPos2;
                    curPos2 = t;
                }

                if (textArea.text.length > 0)
                {
                    textArea.text = textArea.text.substr(0, curPos1) + txt + textArea.text.substr(curPos2, textArea.
                        text.length);
                }
                else
                {
                    textArea.text = txt;
                }
                textArea.selectRange(curPos1 + txt.length, curPos1 + txt.length);
                event.preventDefault();
            }
        }

这有效地处理了粘贴过程中可能发生的所有场景/操作。

protected function textArea_changingHandler(event:TextOperationEvent):void
        {
            if (event.operation is PasteOperation)
            {
                event.preventDefault();
                var txt:String = Clipboard.generalClipboard.getData(ClipboardFormats.TEXT_FORMAT).
                    toString().replace(/[^A-Za-z0-9\s]/ig, "");
                var curPos1:Number = textArea.selectionAnchorPosition;
                var curPos2:Number = textArea.selectionActivePosition;
                if (curPos2 < curPos1)
                {
                    var t:Number = curPos1;
                    curPos1 = curPos2;
                    curPos2 = t;
                }

                if (textArea.text.length > 0)
                {
                    textArea.text = textArea.text.substr(0, curPos1) + txt + textArea.text.substr(curPos2, textArea.
                        text.length);
                }
                else
                {
                    textArea.text = txt;
                }
                textArea.selectRange(curPos1 + txt.length, curPos1 + txt.length);
                event.preventDefault();
            }
        }

This effectively takes care of all scenarios/ operations that can occur during paste.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文