【问题标题】:make bold if span contains uppercase with PHP如果 span 包含 PHP 的大写,则加粗
【发布时间】:2016-02-07 02:51:03
【问题描述】:

我想将包含所有大写文本的标签跨度为粗体。 此代码仅生成第一个单词。

$mystring = '<span> BLABLABLA BLA BLA </span><span>bla bla blabla</span><div>bla bla</div>';
preg_replace("/<span>([A-Z]{2,})*/", "<b>\\1</b></span>",$mystring);

谢谢 我想要结果为&lt;span&gt;&lt;b&gt; BLABLABLA BLA BLA &lt;/b&gt;&lt;/span&gt;&lt;span&gt;bla bla blabla&lt;/span&gt; not:原始字符串里面的html标签太多

【问题讨论】:

  • 请说明您的输入是什么以及您期望的输出是什么。
  • BLABLABLA BLA BLA 类似的东西......结果必须是“ BLABLABLA BLA BLA ”......它使“ BLABLABLA BLA BLA

标签: php preg-replace uppercase


【解决方案1】:

这是您的解决方案:

$myString = '<span> BLABLABLA BLA BLA </span><span>bla bla blabla</span><div>bla bla</div>';

$myString = preg_replace("/<span>([A-Z\s]+)<\/span>/", "<span><b>\\1</b></span>",$myString);

echo $myString;

将匹配每个单词并输出

<span><b> BLABLABLA BLA BLA </b></span><span>bla bla blabla</span><div>bla bla</div>

【讨论】:

  • BLABLABLA BLA BLA 类似的东西......结果必须是“ BLABLABLA BLA BLA ”......它使“ BLABLABLA BLA BLA
  • 谢谢你,但我的字符串来自数据库......它有很多标签。(
    , 等)和跨度也......一些跨度文本只是大写。我只想要这些跨度粗体。
  • @mgunduz 然后我建议您编辑您的问题并指定输入的确切外观以及您期望它的外观。我们不能在这里玩“尝试和猜测”,根据您决定在 cmets 中发布的新信息部分无休止地编辑答案
【解决方案2】:

试试:

preg_replace("~<span>([A-Z\s]+)</span>~","<span><b>$1</b></span>","<span>HELLO WORLD</span>");

这将输出:

 <span><b>HELLO WORLD</b></span>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 2015-04-02
    • 2015-10-10
    • 2016-09-14
    • 2018-05-25
    相关资源
    最近更新 更多