スニぺったん

無料のコードスニペットを掲載しています。言語ごとにコードスニペットを検索し、利用することが可能です。コードのライセンスはトップページをご覧ください。

  • JavaScript
  • 文字列をキャメルケースの文字列に変換する関数 (toCamelCase)

文字列をキャメルケースの文字列に変換する関数 (toCamelCase)

総合評価: - 作成日: 2025-10-06

コメント:
Braveブラウザで動作確認済み。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>toCamelCase</title>
    <script>
        /**
         * 文字列sをキャメルケースに変換する。
         */
        function toCamelCase (s) {
            let dst = ''
            let m = 0

            for (let i = 0; i < s.length; i++) {
                let c = s[i]
                switch (m) {
                case 0:
                    if (/[a-zA-Z0-9]/.test(c)) {
                        dst += c.toLowerCase()
                        m = 10
                    }
                    break
                case 10:
                    if (/[a-zA-Z0-9]/.test(c)) {
                        dst += c
                    } else {
                        m = 20
                    }
                    break
                case 20:
                    if (/[a-zA-Z0-9]/.test(c)) {
                        dst += c.toUpperCase()
                        m = 10
                    } else {
                        // pass
                    }
                    break
                }
            }

            return dst
        }

        document.addEventListener('DOMContentLoaded', () => {
            console.assert(toCamelCase('  camel case string ?') === 'camelCaseString')
            console.assert(toCamelCase('camelCaseString0123') === 'camelCaseString0123')
            console.assert(toCamelCase('snake0123_case_string') === 'snake0123CaseString')
            console.assert(toCamelCase('PascalCaseString') === 'pascalCaseString')
            console.assert(toCamelCase('kebab-case-string') === 'kebabCaseString')
            console.log('OK')
        })
    </script>
</head>
<body>
</body>
</html>