Open In App

How to Convert Camel Case String to Snake Case in JavaScript ?

Last Updated : 15 Jan, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

We are going to learn about the conversion of camel case string into snake case by using JavaScript. Camel case string means words combined, each starting with uppercase and Snake case means words joined with underscores, all lowercase, Converting camel case to snake case involves transforming strings from a format where words are separated by underscores and letters are lowercase.

Example:

Input: GeeksForGeeks
Output: geeks_for_geeks

Input: CamelCaseToSnakeCase
Output: camel_case_to_snake_case

Several methods can be used to Convert camel case string to snake case in JavaScript, which are listed below:

Approach 1: Using Regular Expression

In this approach we are using the regular expression, which involves using pattern matching to identify uppercase letters in a camel case string, inserting underscores before them, and converting the string to lowercase.

Syntax:

camelCaseString.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();

Example: In this example, we are Converting “GeeksforGeeks” to “geeksfor_geeks” by inserting underscores before uppercase letters and converting to lowercase.

Javascript




let camelCaseString = "GeeksForGeeks";
let snakeCaseString = camelCaseString
    .replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
console.log(snakeCaseString);


Output

geeks_for_geeks

Approach 2: Using Split() and Join() Methods

In this approach, we Split a camel case string using a regex that identifies uppercase letters, join the resulting words with underscores, and convert to lowercase for snake case conversion.

Syntax:

let myStr = camelCaseString.split(/(?=[A-Z])/);
let snakeCaseString = myStr.join('_').toLowerCase();

Example: In this example we are using the above-explained approach.

Javascript




let camelCaseString = "GeeksForGeeks";
let myStr = camelCaseString.split(/(?=[A-Z])/);
let snakeCaseString = myStr.join('_').toLowerCase();
console.log(snakeCaseString);


Output

geeks_for_geeks

Apporach 3: Using Reduce() Method

In this approach, we are using Reduce to Iterate through characters, adding underscores before uppercase ones then join and convert to lowercase for camel to snake case conversion.

Syntax:

array.reduce( function(total, currentValue, currentIndex, arr), initialValue )

Example: In this example we are using reduce() method to convert camel case string into snake case string.

Javascript




const camelCaseString = "GeeksForGeeks";
const snakeCaseString = camelCaseString.split('').reduce(
    (result, val) => {
        if (val === val.toUpperCase()) {
            result += '_';
        }
        return result + val.toLowerCase();
    }, '');
console.log(snakeCaseString);


Output

_geeks_for_geeks

Approach 4: Using for Loop

In this approach, Using a Loop to Iterates through characters, adds underscores before uppercase (except first), and converts to lowercase, creating a snake case string from camel case in JavaScript.

Syntax:

for (statement 1 ; statement 2 ; statement 3){
code here...
};

Example: In this example we are using the above-explained approach.

Javascript




function conversionFunction(str) {
    let snakeCase = '';
    for (let i = 0; i < str.length; i++) {
        if (i > 0 && str[i] === str[i].toUpperCase()) {
            snakeCase += '_' + str[i].toLowerCase();
        } else {
            snakeCase += str[i].toLowerCase();
        }
    }
    return snakeCase;
}
 
let camelCaseString = "GeeksForGeeks";
let snakeCaseString = conversionFunction(camelCaseString);
console.log(snakeCaseString);


Output

geeks_for_geeks

Approach 5: Using Array Map and Join() Method

In this approach, we Splits camel case string into words, each word is converted to lowercase using the map function, and joins with underscores for snake case conversion.

Syntax:

let snakeCaseArray = myStr.map(word => word.toLowerCase());

Example: In this example we are using the above-explained approach.

Javascript




let camelCaseString = "GeeksForGeeks";
 
let myStr = camelCaseString.split(/(?=[A-Z])/);
let snakeCaseArray = myStr.map(word => word.toLowerCase());
let snakeCaseString = snakeCaseArray.join('_');
 
console.log(snakeCaseString);


Output

geeks_for_geeks

Approach 6: Using Lodash _.snakeCase() Method

Lodash _.snakeCase() method is used to convert a string to a snake case. Snake case refers to combining words into a lowercase string with underscores(_) between words. The string can be space-separated, dash-separated, or can be separated by underscores.

Syntax:

_.snakeCase( [string=''] );

Javascript




const _ = require("lodash");
  
// Use of _.snakeCase() method
console.log(_.snakeCase('GeeksForGeeks'));


Output:

'geeks_for_geeks'


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads