JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで文字列をスネークケースに変換する方法

スネークケース(snake case)とは、文字列中のスペースをアンダースコア「_」に置き換え、すべての単語を小文字でつなげて記述するスタイルです。たとえば「This is a simple sentence」は「this_is_a_simple_sentence」のように変換されます。変数名や定数の命名など、プログラミングでよく使われる記法の一つです。

ここでは、文字列を受け取り、それをスネークケースに変換するJavaScript関数を実装します。

実装例

基本的な考え方はシンプルです。split(' ')で文字列を単語ごとに分割し、reduce()を使って各単語を小文字に変換した配列を作り、最後にjoin('_')でアンダースコア区切りの文字列として連結します。

const str = 'This is a simple sentence';
const toSnakeCase = (str = '') => {
  const strArr = str.split(' ');
  const snakeArr = strArr.reduce((acc, val) => {
    return acc.concat(val.toLowerCase());
  }, []);
  return snakeArr.join('_');
};
console.log(toSnakeCase(str));

出力結果

コンソールには次のように出力されます。

this_is_a_simple_sentence

より汎用的な変換方法

上記の実装はスペース区切りの文字列が前提となっています。入力にキャメルケース(camelCase)や複数の連続スペースが含まれる可能性がある場合は、正規表現を使うとより堅牢になります。

const toSnakeCaseRobust = (str = '') => {
  return str
    .replace(/([A-Z])/g, ' $1')
    .trim()
    .toLowerCase()
    .replace(/\s+/g, '_');
};

console.log(toSnakeCaseRobust('This Is A Simple Sentence')); // this_is_a_simple_sentence
console.log(toSnakeCaseRobust('myVariableName'));            // my_variable_name

この方法では、大文字の前にスペースを挿入して単語の境界を明確にし、その後すべて小文字化してからスペースをアンダースコアに統一しています。これにより、通常の文だけでなくキャメルケースの識別子にも柔軟に対応できます。

  1. JavaScriptのconst宣言とは?再代入できない変数の基本と使い方を解説

    JavaScriptのconst宣言は、値を再代入することも後から再宣言することもできない変数を作成するための構文です。constはES2015(ES6)で導入されました。 const宣言の主な特徴 一度値を代入すると、別の値に再代入することはできません。 同じ名前の変数を同じスコープ内で再宣言するとエラーになります。 宣言時に必ず初期値を代入する必要があります。 ブロックスコープ({}内でのみ有効)を持ちます。 それでは、JavaScriptにおけるconst宣言の実際のコードを見ていきましょう。 サンプルコード <!DOCTYPE html> <html>

  2. JavaScriptで任意の記法の文字列をキャメルケースに変換する方法

    問題 JavaScriptで、通常の文・スネークケース・パスカルケースなどどんな記法で書かれた文字列でも受け取れる関数を作成し、その文字列をキャメルケース(camelCase)に変換することを考えます。 たとえば、関数への入力が次のようになっているとします。 入力 const str = New STRING; 期待される出力 const output = newString; サンプルコード 以下が実際のコードです。 const str = New STRING; const toCamelCase = (str = ) => { return str .re