Casting a string to snake case - JavaScript

Snake case is a naming convention where words are separated by underscores (_) and all letters are lowercase. For example, "Hello World" becomes "hello_world".

This article demonstrates how to convert any string to snake case using JavaScript.

Syntax

function toSnakeCase(str) {
    return str.split(' ')
              .map(word => word.toLowerCase())
              .join('_');
}

Example

Here's a complete example that converts a sentence to snake case:

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));
console.log(toSnakeCase('JavaScript Programming'));
console.log(toSnakeCase('Convert To Snake Case'));
this_is_a_simple_sentence
javascript_programming
convert_to_snake_case

Alternative Approaches

Using map() Method

const toSnakeCaseMap = (str) => {
    return str.split(' ')
              .map(word => word.toLowerCase())
              .join('_');
};

console.log(toSnakeCaseMap('Hello World Example'));
hello_world_example

Using Regular Expressions

const toSnakeCaseRegex = (str) => {
    return str.toLowerCase().replace(/\s+/g, '_');
};

console.log(toSnakeCaseRegex('Multiple   Spaces   Example'));
console.log(toSnakeCaseRegex('Tab	Separated	Text'));
multiple_spaces_example
tab_separated_text

Handling Edge Cases

const toSnakeCaseRobust = (str) => {
    if (!str) return '';
    return str.trim()
              .toLowerCase()
              .replace(/\s+/g, '_')
              .replace(/[^a-z0-9_]/g, '');
};

console.log(toSnakeCaseRobust('  Extra Spaces  '));
console.log(toSnakeCaseRobust('Special@Characters#Here!'));
console.log(toSnakeCaseRobust(''));
extra_spaces
specialcharactershere

Comparison

Method Handles Multiple Spaces Handles Special Characters Performance
split() + reduce() No No Good
split() + map() No No Better
Regular Expression Yes Yes Best

Conclusion

Converting strings to snake case can be achieved using multiple methods. The regular expression approach is most robust for handling edge cases, while simple split() and join() works well for basic use cases.

Updated on: 2026-03-15T23:18:59+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements