【发布时间】:2017-03-13 16:49:00
【问题描述】:
我需要将给定的字符串值(带或不带分隔符)转换为CamelCase 字符串。到目前为止,这就是我正在做的事情:
class UtilString
{
public function stringToCamelCase($string, $character = null)
{
return preg_replace_callback("/{$character}[a-zA-Z]/", 'removeCharacterAndCapitalize', $string);
}
private function removeCharacterAndCapitalize($matches)
{
return strtoupper($matches[0][1]);
}
}
$str1 = 'string_with_separator';
$str2 = 'string';
$test1 = (new UtilString())->stringToCamelCase($str1, '_');
$test2 = (new UtilString())->stringToCamelCase($str2);
输出上方的代码是:
$test1 = 'string_with_separator';
$test2 = 'string';
我希望他们成为:
$test1 = 'StringWithSeparator';
$test2 = 'String';
怎么样?我做错了什么以及如何解决?我正在使用 PHP 5.5.x!
注意:如果您知道任何具有此类功能的字符串操作类|包,请告诉我,以免我重新发明轮子!
【问题讨论】:
-
stringwithoutseparator变成了什么? -
@chris85 输入与
$str2相同的路径,输出应为Stringwithoutseparator -
除了第一个字母外,它主要工作,但你没有检查错误,因为你的回调应该像
[$this,'removeCharacterAndCapitalize']一样被引用
标签: php regex preg-replace preg-replace-callback