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:
Table of Content
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.
let camelCaseString = "GeeksForGeeks" ;
let snakeCaseString = camelCaseString .replace(/([a-z])([A-Z])/g, '$1_$2' ).toLowerCase();
console.log(snakeCaseString); |
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.
let camelCaseString = "GeeksForGeeks" ;
let myStr = camelCaseString.split(/(?=[A-Z])/); let snakeCaseString = myStr.join( '_' ).toLowerCase();
console.log(snakeCaseString); |
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.
const camelCaseString = "GeeksForGeeks" ;
const snakeCaseString = camelCaseString.split( '' ).reduce(
(result, val) => {
if (val === val.toUpperCase()) {
result += '_' ;
}
return result + val.toLowerCase();
}, '' );
console.log(snakeCaseString); |
_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.
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); |
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.
let camelCaseString = "GeeksForGeeks" ;
let myStr = camelCaseString.split(/(?=[A-Z])/); let snakeCaseArray = myStr.map(word => word.toLowerCase()); let snakeCaseString = snakeCaseArray.join( '_' );
console.log(snakeCaseString); |
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=''] );
const _ = require( "lodash" );
// Use of _.snakeCase() method console.log(_.snakeCase( 'GeeksForGeeks' ));
|
Output:
'geeks_for_geeks'