【问题标题】:TWIG Get first letter of HTML after Raw filterTWIG 在 Raw 过滤器之后获取 HTML 的第一个字母
【发布时间】:2016-09-09 13:09:59
【问题描述】:

我知道如何在 TWIG 中获取字符串的第一个字母

<p>The first letter is {{someString | first}}</p>

使用像

这样的 HTML 字符串
<p>This is a sting</p>

上面会返回'

添加 'Raw'/'escape' 会得到相同的结果。

我需要将该字符串显示为 HTML(与 Raw 一样)但获取第一个字母(在上述情况下为“T”)。

我是否以错误的顺序使用过滤器?

有人知道吗?

非常感谢

@Matteo 的答案已经很接近但不完全是我想要的。我可能错误地提出了我的问题。对不起。

如果我有这样的字符串

<p>This is a <strong>string</strong></p>

使用 raw 会给出

这是一个字符串

现在我真正需要的是让第一个字母 (T) 来做一些事情,比如在它周围添加标签

<span>T</span>his is a <strong>string</string>

同时仍将 HTML 的其余部分保留在 . Striptags 删除字符串中的所有标签并返回一个没有 HTML 部分的纯字符串。 我希望我的表述是正确的。

【问题讨论】:

  • 您好。如果您认为@Matteo 的答案回答了您的问题(我认为确实如此),您能否将其标记为正确答案。谢谢!
  • 很接近,但不是我想要的
  • 使用 CSS p::first-letter.
  • 您是否可以在您的帖子上单击edit 并根据您对@Matteo 帖子的评论正确地重新提出您的问题?如果没有,也许发布一个新问题。看了你的评论,我还是不明白你需要什么。为什么String 必须加粗 - 不清楚。

标签: php twig symfony symfony-3.1


【解决方案1】:

您可以使用striptags 过滤器:

<p>The first letter is {{someString|striptags | first}}</p>

Here 一个可行的解决方案

希望有帮助

【讨论】:

  • 这已经是一个很好的开始 但是我可能错误地提出了我的问题(非常抱歉)我真正的意思是&lt;p&gt;This is a &lt;b&gt;String&lt;/b&gt;&lt;/p&gt;,我想得到第一个字母并显示@987654325 @ 粗体。哪些 striptags 不允许,因为它删除了所有 html 字符串。有没有办法只删除第一个标签?
【解决方案2】:

这个怎么样:

{% set someString = "This is a <strong>String<strong>"%}

<span>{{someString|striptags|first}}</span>{{someString|slice[4:]|raw}}

您可以在 twigFiddle 中尝试: http://twigfiddle.com/pk10ip

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 2021-02-15
    • 2011-03-22
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多