[解決済み] ダッシュを含む文字列をキャメルケースに変換する
2022-12-11 20:51:30
質問
次のような文字列を受け取りたい。this-is-a-string'をこのように変換したい。thisIsAString'に変換したい。
function dashesToCamelCase($string, $capitalizeFirstCharacter = false) {
// Do stuff
return $string;
}
ケバブケース(kebab-case")をキャメルケース(camelCase")に変換したいのですが、可能でしょうか?
どのように解決するのですか?
正規表現やコールバックは必要ありません。ほとんどすべての作業をucwordで行うことができます。
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 を使用している場合、strtolower の代わりに lcfirst を使用することができます。
更新情報
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');
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] YAML の文字列を複数行に渡って分割するには?
-
[解決済み] Bashで文字列を小文字に変換する方法は?
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。