Reverse a String in JavaScript or Node.js

There are situations when you want to reverse a given string value. This tutorial shows you how to reverse a string from a given value.

Node.js Series Overview

  1. String Replace All Appearances
  2. Remove All Whitespace From a String in JavaScript
  3. Generate a Random ID or String in Node.js or JavaScript
  4. Remove Extra Spaces From a String in JavaScript or Node.js
  5. Remove Numbers From a String in JavaScript or Node.js
  6. Get the Part Before a Character in a String in JavaScript or Node.js
  7. Get the Part After a Character in a String in JavaScript or Node.js
  8. How to Check if a Value is a String in JavaScript or Node.js
  9. Check If a String Includes All Strings in JavaScript/Node.js/TypeScript
  10. Check if a Value is a String in JavaScript and Node.js
  11. Limit and Truncate a String to a Given Length in JavaScript and Node.js
  12. Split a String into a List of Characters in JavaScript and Node.js
  13. How to Generage a UUID in Node.js
  14. Reverse a String in JavaScript or Node.js
  15. Split a String into a List of Lines in JavaScript or Node.js
  16. Split a String into a List of Words in JavaScript or Node.js
  17. Detect if a String is in camelCase Format in Javascript or Node.js
  18. Check If a String Is in Lowercase in JavaScript or Node.js
  19. Check If a String is in Uppercase in JavaScript or Node.js
  20. Get the Part After First Occurrence in a String in JavaScript or Node.js
  21. Get the Part Before First Occurrence in a String in JavaScript or Node.js
  22. Get the Part Before Last Occurrence in a String in JavaScript or Node.js
  23. Get the Part After Last Occurrence in a String in JavaScript or Node.js
  24. How to Count Words in a File
  25. How to Shuffle the Characters of a String in JavaScript or Node.js
  26. Append Characters or Words to a String in JavaScript or Node.js
  27. Check if a String is Empty in JavaScript or Node.js
  28. Ensure a String Ends with a Given Character in JavaScript or Node.js
  29. Left-Trim Characters Off a String in JavaScript or Node.js
  30. Right-Trim Characters Off a String in JavaScript or Node.js
  31. Lowercase the First Character of a String in JavaScript or Node.js
  32. Uppercase the First Character of a String in JavaScript or Node.js
  33. Prepend Characters or Words to a String in JavaScript or Node.js
  34. Check if a String is a Number
  35. Convert a String to Buffer

Reverse a String in JavaScript

JavaScript doesn’t have a native Str#reverse method. Yet, you can use the existing methods to build your own method to reverse a string.

Creating the reverse string requires you to split an existing string into an array of its characters. JavaScript’s array class comes with a reverse method allowing you to reverse the order of the characters. Then you must join the items in the array back to a string value:

/**
 * Returns the reverse of the given string `value`.
 * 
 * @param {String} value
 * 
 * @returns {String}
 */
function reverse(value) {  
  return Array.from(
    String(value || '')
  ).reverse().join('')
}

Then use the created reverse function like this:

reverse('Super')  
// 'repuS'

reverse('cool 🥳')  
// '🥳 looc'

reverse(null)  
// ''

reverse()  
// ''

Notice: we’re using Array.from(<string-value>) to split a given string into a list of characters. The reason is: Array.from(<string-value>) supports UTF-16 characters, like emojis, which then creates a character for each emoji.

Be careful when using „string.split('')“

Be careful when using string.split('') to split the given string into its characters. The String#split method doesn’t handle UTF-16 characters like emojis. The list of characters would then lose the emojis as individual characters. That’s the reason we recommend using Array.from() to create an array of characters from a given string.

Use the @supercharge/strings Package

I’m the maintainer of the @supercharge/strings package providing convenient string utilities. It provides a useful Str#reverse() method returning the reversed string value. It also provides solid emoji and UTF-16 character handling:

const Str = require('@supercharge/strings')

Str('Super').reverse().get  
// 'repuS'

Str('cool 🥳').reverse().get  
// '🥳 looc'

Str(null).reverse().get()  
// ''

Str().reverse().get()  
// ''

That’s it!


Mentioned Resources

Explore the Library

Find interesting tutorials and solutions for your problems.