从 HAML 中的 html 内容变量中提取纯文本

Posted

技术标签:

【中文标题】从 HAML 中的 html 内容变量中提取纯文本【英文标题】:Extracting plain text from an html content variable in HAML 【发布时间】:2013-04-01 21:52:13 【问题描述】:

我正在尝试从 HAML 中的某些 html 内容中提取纯文本。例如,如果我在一个名为 message.content 的变量中有这个 HTML:

Hi, this is a <strong>test</strong> message!

我有这样的 HAML 行:

%p= message.content

我想要这个作为输出:

<p>
  Hi, this is a test message!
</p>

有什么办法可以做到吗?我看过!=,但它解释了HTML,还有:plain过滤器,但没有运气。任何帮助将不胜感激,谢谢!

【问题讨论】:

【参考方案1】:

我不知道用于此目的的 HAML 助手,您必须使用外部助手或使用 RegExp。我知道 RegExp 并不是 HTML 处理的真正首选工具,但在简单的情况下它可以正常工作:

%p= message.content.replace(/<\/?\w+\/?>/g, '')

由于您添加了hamlc 标签并且您可能希望此解决方案在浏览器中工作,您可以使用 jQuery 来提取文本内容:

%p= $(message.content).text()

【讨论】:

是的,我最终使用了你提到的 jQuery。我认为它比 RegExp 更安全,谢谢!。

以上是关于从 HAML 中的 html 内容变量中提取纯文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Twig 中提取从 HTML 解析的纯文本?

php从邮件正文中提取文本/纯文本

从 MBOX 文件中提取纯文本/文本和 html 正文到列表

如何将 HTML 文本转换为纯文本? [复制]

正则表达式提取特定 HTML 标记中的纯文本 [重复]

PHP提取富文本字符串中的纯文本,并进行进行截取