Frage

Grüße, Das kann ich sehen, wenn ich in html ein Textfeld Steuerung gesetzt, die Text-Eigenschaft der HTML-freie Version des Textes enthält. So gibt es einen Parser irgendwo, die von HTML aus dem Inhalt zerreißt, die für meine Zwecke sehr nützlich sein würde. Allerdings basiert auf der flexiblen Quellcode, die Einstellung von HTML in UITextField.as getan, was die Art der das Textfeld ein Mitglied von TextArea- ist. Die Linie, die die Arbeit tut, ist: super.htmlText = Wert; in Funktion außer Kraft setzen public function set html (value: String): void

Der Versuch, die Klasse hieararchy zu folgen, habe ich am Ende in der Klasse bis Die Flex, die Flash Player Textfeld-Klasse erweitert.

Es scheint, die Funktionalität, die ich nach bin, ist in Flash Player. So ist es eine Möglichkeit, diese HTML Reinigungsfunktion für den Zugriff auf? Bin ich etwas fehlt hier?

Mit freundlichen Grüßen Seref

War es hilfreich?

Lösung

Bei regex Sie nicht, hier ist etwas, das Sie prüfen wollen, könnten:

var t:String = "asd <span>This is <font>some</font> text <b> :) </b> </span> \nand more";
function stripTags(x:XML):String {
  var t:String = "";
  var children:XMLList = x.children();
  var child:XML;
  for(var i:Number = 0; i < children.length(); i++){
    child = children[i];
    if(child.nodeKind() == "text")
      t += child.toString();
    else if(child.nodeKind() == "element")
      t += stripTags(child);
  }
  return t;
}
var x:XML = new XML("<root>" + t + "</root>");
XML.ignoreWhitespace = false;
var s:String = stripTags(x);
trace(s);

PS: Ich habe diesen Actionscript-Code nicht getestet haben, hier ist der entsprechende Code JavaScript, dass ich getestet und arbeiten. Ich nehme an, es wäre da beide Folge ECMAScript in Actionscript arbeiten.

var t = "asd <span>This is <font>some</font> text <b> :) </b> </span> \nand more";
function stripTags(str){
  function strip(x){
    var t = "";
    var children = x.children();
    var child;
    for(var i = 0; i < children.length(); i++){
      child = children[i];
      if(child.nodeKind() == "text")
        t += child.toString();
      else if(child.nodeKind() == "element")
        t += strip(child);
    }
    return t;
  }
  var xml = new XML("<root>" + str + "</root>");
  XML.ignoreWhitespace = false;
  return strip(xml);
}
var s = stripTags(t);
console.log(s);

Ausgabe:

asd This is some text :)  
and more

Andere Tipps

Nein, es gibt keine Möglichkeit, Zugangscode in den Flash Player nativen Klassen.

Allerdings sollten Sie in der Lage sein, eine Regex zu verwenden, um einfach alle HTML-Tags in Ihrem Inhalt parsen.

Obwohl nicht getestet, hier ist eine Option , die kamen in Google auf. Sie können nur, dass in Flex verwenden. So können Sie wahrscheinlich so etwas wie dies tun:

var regEx : RegExp = new RegExp('<(.|\n)*?>');
var noHTMLText = htmlText.replace(regEx , '');

Natürlich wurde diese im Browser geschrieben. Weitere Informationen über Regex in Flex .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top