Očištění HTML textu

Při načítání externích dat se občas vyskytne potřeba "očistit" předané texty od HTML tagů a získat tak pouze samotný text, bez jakéhokoliv HTML formátování. V případě XML dat pak navíc můžeme řešit problém s nadbytečnými konci řádků, které oddělují odstavce. Jako užitečná se pak jeví následující třída, která zajistí veškeré odstranění přebytečných tagů a konců řádků:

package
{
    public class HtmlStrip
    {
        private static var removeHTML:RegExp = new RegExp("<[^>]*>", "gi");
        //odstranění HTML tagů
        public static function stripHTMLTags(src:String):String{
            return stripMe(src);
        }
        //odstranění konců řádků
        public static function removeNewLines(src:String):String{
            return removeLines(src);
        }
        //odstranění tagů a konců řádků
        public static function clearMyString(str:String):String{
            var pomStr:String = stripMe(str);
            return removeLines(pomStr);
        }
        //odstranění HTML tagů
        private static function stripMe(src:String):String{
            return src.replace(removeHTML, "");
        }
        //odstranění nových řádků
        private static function removeLines(src:String):String{
            return replaceString(src,"\n","");
        }
        //nahrazení textu
        private static function replaceString(src:String, text_what:String, text_for:String):String {
            return src.split(text_what).join(text_for);
        }
    }
}

Použití je pak velice jednoduché, pro odstranění HTML tagů a konců řádků se použije zápis:

var novyText:String = HtmlStrip.clearMyString(textHTML);

3 Responses to “Očištění HTML textu”

  1. Mirek Says:

    To je paráda, zrovna jsem si chtěl takovou třídu napsat a tohle by bylo přesně ono … mohu to použít? Myslím, za předpokladu, že do poznámky dám odkaz na zdroj, tzn. Vaše jméno a url toho článku.

  2. admin Says:

    nemám s tím problém, jinak bych to sem nedával :)

  3. Mirek Says:

    Paráda … díky … no, slušnost je slušnost :o)

Leave a Reply

Captcha
Enter the letters you see above. (Case sensitive)