首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将带短划线的字符串转换为camelCase

将带短划线的字符串转换为camelCase
EN

Stack Overflow用户
提问于 2010-05-08 06:15:17
回答 21查看 87.7K关注 0票数 101

我想把一个字符串:'this-is-a- string‘转换为:'thisIsAString':

代码语言:javascript
复制
function dashesToCamelCase($string, $capitalizeFirstCharacter = false) {
    // Do stuff

    return $string;
}

我需要把“烤肉串”转换成"camelCase“。

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2010-05-08 06:24:24

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

代码语言:javascript
复制
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');

如果你使用的是PHPstrorer5.3,你可以使用lcfirst而不是>=。

更新

第二个参数被添加到PHP5.4.32/5.5.16中的ucword中,这意味着我们不需要首先将破折号改为空格(感谢Lars Ebert和PeterM指出了这一点)。以下是更新后的代码:

代码语言:javascript
复制
function dashesToCamelCase($string, $capitalizeFirstCharacter = false) 
{

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

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

    return $str;
}

echo dashesToCamelCase('this-is-a-string');
票数 205
EN

Stack Overflow用户

发布于 2016-07-26 13:28:20

重载的一行程序,带有文档块...

代码语言:javascript
复制
/**
 * Convert underscore_strings to camelCase (medial capitals).
 *
 * @param {string} $str
 *
 * @return {string}
 */
function snakeToCamel ($str) {
  // Remove underscores, capitalize words, squash, lowercase first.
  return lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', $str))));
}
票数 11
EN

Stack Overflow用户

发布于 2010-05-08 06:23:31

我可能会使用preg_replace_callback(),如下所示:

代码语言:javascript
复制
function dashesToCamelCase($string, $capitalizeFirstCharacter = false) {
  return preg_replace_callback("/-[a-zA-Z]/", 'removeDashAndCapitalize', $string);
}

function removeDashAndCapitalize($matches) {
  return strtoupper($matches[0][1]);
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2791998

复制
相关文章

相似问题

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