将url slug改为camel case

时间:2012-09-16 17:47:43

标签: php regex

我在PHP中有以下字符串:

this-is_a-test

我想将其更改为:

thisIsATest

因此字符串可以包含任何破折号或下划线数。我需要一些正则函数将字符串更改为驼峰大小写字符串。

如何做到这一点?

2 个答案:

答案 0 :(得分:5)

使用preg_replace_callback

$string = 'this-is_a-test';

function toUpper($matches) {
  return strtoupper($matches[1]);
}

echo preg_replace_callback('/[-_](.)/', 'toUpper', $string); // thisIsATest

<强> DEMO

答案 1 :(得分:3)

不,你不需要正则表达式。

  • str_replace()用空格替换标点符号。
  • ucwords()以大写每个单词的第一个字母。
  • str_replace()再次摆脱空间。

您可以使用正则表达式,但这不是必需的。