1

我正在寻找一些关于如何解决这个问题的建议。

我从 API 获取字符串,其中可能包含 HTML 标记,例如斜体文本、粗体文本、链接、图像、段落等。

我可能会选择我通常非常喜欢的TTTAttributedLabel 。

在解析过程中,我从原始字符串中创建了一个字符串,该字符串去除了所有 HTML 标记。我正在使用一个项目中的NSString+HTML,这似乎效果很好。

现在我想要做的是准备一个NSAttributedString可以TTTAttributedLabel用来显示具有正确格式的文本。

我还想同时在一个单独的数组中准备链接。

我想知道 Regex 是否是合适的方法,以及我将如何实现它。

使用 Regex,我可以使用 查找任何 HTML 标签<[^>]*>,但是,我想知道标签之间的文本。

以下面的字符串为例:

The <b>quick</b> brown fox <i>jumps</i> over the <a href="http://dog.com">lazy dog</a>.

应显示为:

敏捷的棕色狐狸跳过懒惰的狗。

现在,我基本上想要的是NSRange标签内出现的每个文本及其类型的 s(但将标签排除在等式之外)。例如,对于上面的文本,我会得到:

NSRange boldRange = NSMakeRange(4, 3);
NSRange italicRange = NSMakeRange(20, 5);
NSRange urlRange = NSMakeRange(35, 8);

我认为这应该作为一个循环来完成,这样我就可以向我正在创建的 NSAttributedString 添加格式,当然还可以将 URL 范围保存到一个单独的数组中,这样我就可以在显示期间创建链接。

有没有图书馆可以帮助我。当我找到东西时,我会尝试更新这个问题。

4

1 回答 1

1

你可以试试 OHAttributedLabel,它可以像你问的那样显示 html 字符串。

于 2014-02-05T21:14:21.840 回答