首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用下划线分隔的Title-case单词

用下划线分隔的Title-case单词
EN

Stack Overflow用户
提问于 2017-10-12 19:08:18
回答 2查看 315关注 0票数 1

在将字符串插入数据库之前,我正在尝试将其转换为TitleCase。我使用的是ucwords

我的字符串是:FIRST_SECOND_THIRD

我的代码:

代码语言:javascript
复制
if (//something){
    $resp = strtolower($line[14]);
    $resp_ = ucwords($resp, "_");

    //rest of the query...

}

var_dump($resp_)返回null,我不知道为什么。

EN

回答 2

Stack Overflow用户

发布于 2018-10-11 22:52:37

这是完全一样的事情,希望能帮上忙,干杯。

// php脚本

代码语言:javascript
复制
<?php

    $string = "FIRST_SECOND_THIRD";

    $var = strtolower(str_replace('_',' ',$string)); 
    $temp = ucwords($var);
    echo str_replace(' ', '', $temp);

?>

//output 
FirstSecondThird

如果自定义分隔符可以用于ucword函数,那么这项工作可能会更容易一些。

票数 1
EN

Stack Overflow用户

发布于 2018-12-03 20:22:36

如果您的输入字符串是全大写的,那么您的意图是对字符串开头或下划线后面的字母跟在字母后面的字母使用strtolower()

代码:(Demo)

代码语言:javascript
复制
echo preg_replace_callback(
         '~(?:^|_)[A-Z]\K[A-Z]+~',
         function($m) {
             return strtolower($m[0]);
         },
         'FIRST_SECOND_THIRD'
     );

输出:

代码语言:javascript
复制
First_Second_Third

甚至更简单,使用mb_convert_case():(Demo)

代码语言:javascript
复制
echo mb_convert_case('FIRST_SECOND_THIRD', MB_CASE_TITLE, 'UTF-8');
// First_Second_Third
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46708093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档