首页 > 设计 > WEB开发 > 正文

4.1.正确的设置一个文本对象的值

2023-08-05 15:52:28
字体:
来源:转载
供稿:网友
4.1.1. 问题
我想正确的显示出可能被传送到文本对象的HTML 和简单字符串
4.1.2. 解决办法
使用htmlText 和text 属性,依靠输入模式,来适当地渲染文本和采用正则表达式分析被传到Text 对象中的字符串。
4.1.3. 讨论
Text 和TextArea 不会正确的显示HTML 除非HTML 被传Text or TextArea 组件的htmlText 属性。通常把非HTML 文本传递给Text or TextArea 不会有问题, 除非文本里可能包含了HTML 字符.

正则表达式是一个强力工具,它可以让你快速而且高效解析文本或者文本模板,避免冗长乏味的字符串操作。这个表达式寻找“<”,接上任意数量的字母字符,接上“>”:
+展开
-ActionScript
var regexp:RegExp = /<.+/w.>/;

这个例子用一个正则表达式来决定是否把这个含有HTML 或XML 的字符串传递给Text 组件:
+展开
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400height="300">
<mx:Script>
<![CDATA[
private var htmlStr1:String = '<b>Header</b><br/>Hello.<i>Hello.</i> <font color="#ff0000" size="15">RED</font>';
private var htmlStr2:String = "<ul><li>Item 1</li><li>Item 2</li><li>Item3</li></ul>";
private var textStr1:String = "It is a long established fact that a readerwill be distracted by the readable content of a page when looking at its layout, if say the amount of text > 100.";
private var textStr2:String = " We can use <<String>> to indicate in Erlang that the values being passed are Strings";
private function setNewText():void
{
determineTextType(changeText.selectedItem.value.toString());
}
private function determineTextType(str:String):void
{
//这里用正则表达式来决定是否找到任何通过模板一个“<”符号,接上任何字字母,接上另一个“〉”符号测试的HTML 标签:
var regexp:RegExp = /<.+/w.>/;
if(regexp.test(str))
{
textArea.htmlText = str;
}
else
{
textArea.text = str;
}
}

]]>
</mx:Script>
<mx:ComboBox id="changeTextdataProvider="{[{label:'HTML1',
value:htmlStr1}, {label:'HTML2', value:htmlStr2},
{label:'Text1', value:textStr1}, {label:'Text2',
value:textStr2}]}
change="setNewText()"/>

<mx:TextArea id="textAreaheight="100%"/>
</mx:VBox>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表