php - 将带破折号的字符串转换为 camelCase

标签 php string

我想获取这样的字符串:'this-is-a-string' 并将其转换为:'thisIsAString':

function dashesToCamelCase($string, $capitalizeFirstCharacter = false) {
    // Do stuff

    return $string;
}

我需要将“kebab-case”转换为“camelCase”。

最佳答案

不需要正则表达式或回调。几乎所有的工作都可以用 ucwords 完成:

function dashesToCamelCase($string, $capitalizeFirstCharacter = false) 
{

    $str = str_replace(' ', '', ucwords(str_replace('-', ' ', $string)));

    if (!$capitalizeFirstCharacter) {
        $str[0] = strtolower($str[0]);
    }

    return $str;
}

echo dashesToCamelCase('this-is-a-string');

如果您使用 PHP >= 5.3,则可以使用 lcfirst 代替 strtolower。

更新

在 PHP 5.4.32/5.5.16 中向 ucwords 添加了第二个参数,这意味着我们不需要先将破折号更改为空格(感谢 Lars Ebert 和 PeterM 指出这一点)。这是更新的代码:

function dashesToCamelCase($string, $capitalizeFirstCharacter = false) 
{

    $str = str_replace('-', '', ucwords($string, '-'));

    if (!$capitalizeFirstCharacter) {
        $str = lcfirst($str);
    }

    return $str;
}

echo dashesToCamelCase('this-is-a-string');

关于php - 将带破折号的字符串转换为 camelCase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791998/

相关文章:

Javascript EJS 字符串文字

php - mysql 连接无法正常工作

php - 如何设置 phpmyadmin 和 SQL 通过 REST-api 进行消息传递?

php - 如何为他人创建MYSQL数据库模板

Django翻译和gettext : The deprecation of the % (string interpolation) operator

java - 从其他java类获取字符串

PHP/MYSQL/社交网络关注者最佳实践表结构

php - 多表SQL搜索查询

字符类型指针内存分配?

JAVA - 使用 set 类创建构造函数、调用 Set 和替换字符串中的字符