regex 将url slug改为camel大小写

r6hnlfcb  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(77)

在PHP中有以下字符串:

this-is_a-test

我想把它改成这样:

thisIsATest

所以字符串可以包含任意数量的破折号或下划线。我需要一个正则表达式函数来将字符串转换为 Camel 大小写字符串。
如何做到这一点?

ne5o7dgx

ne5o7dgx1#

使用preg_replace_callback

$string = 'this-is_a-test';

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

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

DEMO

ssm49v7z

ssm49v7z2#

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

  • str_replace()将标点符号替换为空格。
  • ucwords()为每个单词的首字母大写。
  • str_replace()再次去掉空格。

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

bpsygsoo

bpsygsoo3#

您还可以使用lcfirststr_replaceucwords函数。
示例:lcfirst(str_replace('-', '', ucwords('my-slug-string', '-')))

相关问题