用到TextField等的htmlText属性时,会发现,有些字符不显示。原因是遇到了”<",html中"<" , 和 ">“是成对的出现,单独出现一个会导致后边的字符被切掉了。所以这个时候,就需要对“<”,“>”,进行转义。
html转义字符对照表:http://tool.oschina.net/commons?type=2
并不是所有的”<" ,">“都需要转义。比如:
对于第一手数据,原本的不带html的标签。我们可以先转义,然后再对数据进行html包装,就可以解决上边的问题了。
但是,事情是千变万化的,有时候并不像你想象中的美好。如果你得到的第一手数据就已经带html标签了。这个时候,就要进行另外的处理了。比如:
马上要元旦了,先贴出转义封装吧。
public static function translateTHL(value:String):String { var reg:RegExp = /&/g; value = value.replace(reg, "&"); reg = /</g; value = value.replace(reg, "<"); reg = />/g; value = value.replace(reg, ">"); return value; } public static function translateFHL(value:String):String { var reg:RegExp = /</g; value = value.replace(reg, "<"); reg = />/g; value = value.replace(reg, ">"); reg = /&/g; value = value.replace(reg, "&"); reg = /"/g; value = value.replace(reg, "\""); reg = new RegExp("<br>", "g"); value = value.replace(reg, "\n"); reg = new RegExp("<br/>", "g"); value = value.replace(reg, "\n"); return value; }