【问题标题】:First character upper case and ignore few special characters in php第一个字符大写并忽略php中的几个特殊字符
【发布时间】:2017-07-30 16:49:22
【问题描述】:

我正在尝试将大写文本显示为短语中的第一个大写字符。如果有任何特殊字符,则必须忽略它们。

例如:

第 1 部分:物质/制备和 公司/企业

上面是我的文字,我希望上面的文字显示出来

第 1 部分:物质/制剂的识别和 公司/企业

到目前为止,我尝试了 echo ucfirst(strtolower($word));

哪个输出

第 1 部分:物质/制剂的识别和 公司/企业

我怎样才能做到这一点? 谢谢

【问题讨论】:

  • 回答正确吗?

标签: php regex ucfirst


【解决方案1】:

您可以split 使用: 包围可选间隔,并在每个拆分项目上调用ucfirst,然后将它们连接在一起:

$out="";

foreach (preg_split('/(\h*[:.]\h*)/', strtolower($str), 0, PREG_SPLIT_DELIM_CAPTURE) as $s)
   $out .= ucfirst($s)

echo "$out\n";

//=> Section 1: Identification of the substance/preparation and of the company/undertaking

\h*[:.]\h*:. 上拆分,两侧可选间隔。您可以在要拆分的字符类中添加更多字符。

【讨论】:

    【解决方案2】:

    你可以分成两部分:

    $exploded = explode(': ', $phrase);
    

    然后ucfirst每个部分:

    $exploded[0] = ucfirst($exploded[0]);
    $exploded[1] = ucfirst(strtolower($exploded[1]));
    

    终于可以全部加入了:

    echo join(': ', $exploded);
    

    $phrase = 'SECTION 1: CIAO MONDO';
    $exploded = explode(': ', $phrase);
    $exploded[0] = ucfirst($exploded[0]);
    $exploded[1] = ucfirst(strtolower($exploded[1]));
    echo join(': ', $exploded); // Section 1: Ciao mondo
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 2013-12-11
      相关资源
      最近更新 更多