我的TextArea
有最后一行
</strong> Esplanade Concert Hall <strong>MRT:</strong>
我需要得到最后一行文字。
我正在使用此功能来获取它:
textarea.mx_internal::getTextField().getLineText(lastlineIndex-2)
但返回的值是纯文本,我需要HTML
格式的值,这样我就可以使用相同的字符串进行其他字符串操作。
我需要它,因为在HTML
我需要
content.split(lastlineText);
和content
包含HTML
文字。
答案 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>