从TextArea中获取HTML文本

时间:2013-03-06 08:03:59

标签: actionscript-3

我的TextArea有最后一行

</strong> Esplanade Concert Hall <strong>MRT:</strong>

我需要得到最后一行文字。

我正在使用此功能来获取它:

textarea.mx_internal::getTextField().getLineText(lastlineIndex-2) 

但返回的值是纯文本,我需要HTML格式的值,这样我就可以使用相同的字符串进行其他字符串操作。

我需要它,因为在HTML我需要

content.split(lastlineText); 

content包含HTML文字。

1 个答案:

答案 0 :(得分:0)

这是不可能的,因为textfield不支持强标记。从textarea htmltext中删除了强标记。但是你可以使用RegEx。将最后一行拆分为单词并创建模式。看下来(也许你自己修改代码):

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               creationComplete="application_creationCompleteHandler(event)"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            protected var str:String = "";

            protected function application_creationCompleteHandler(event:FlexEvent):void
            {
                str = 'ActionScript 3 (AS3) is the open source object oriented programming (OOP) language of the Adobe <strong>Flash</strong> and <b>AIR</b> Platforms.';

                textarea.addEventListener("htmlTextChanged", textarea_changeHandler, false, 0, true);
                textarea.htmlText = str;
            }

            protected function textarea_changeHandler(event:Event):void
            {
                var allLines:Number = textarea.mx_internal::getTextField().numLines;
                var line:String = textarea.mx_internal::getTextField().getLineText(allLines-1); 

                var arr:Array = line.match(/\w+[.!?]?/gi);

                var pattern:String = "";

                var i:uint = 0;
                var l:uint = arr.length;

                for ( ; i<l; i++)
                {
                    pattern += "(<[^</]+?>)?\\s*" +  arr[i] + "\\s*(<[^<]+?>)?" + "\\s*";
                }

                var regex:RegExp = new RegExp(pattern, "gi");

                trace( str.match(regex) );

            }

        ]]>
    </fx:Script>
    <mx:TextArea id="textarea" width="280" height="100" x="100"/>

</s:Application>