How to Replace Last Character of String in Javascript

In this tutorial, you will learn how to replace last character of string in javascript. A string is built using multiple characters and these characters can be letters, numbers, or special characters. It can also be a combination of letters, numbers, and special characters.

There are numerous ways to replace the last character of the string. We are going to create a custom function that involves the usage of split(), join(), and reverse() methods as well as for loop to loop through all characters. Later, we will use replace() method to replace the last character with an exclamation mark (!).

In the following example, we have one global variable that holds a string. Upon click of a button, we will replace the last character of the string and display the result on the screen.  Please have a look over the code example and the steps given below.

HTML & CSS

  • We have 3 elements in the HTML file (div, button, and h1). The div element is just a wrapper for the rest of the elements.
  • The innerText for the button element is “Get” and for the h1 element, it is “Result”.
  • We have done some basic styling using CSS and added the link to our style.css stylesheet inside the head element.
  • We have also included our javascript file script.js with a script tag at the bottom.
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="style.css">
  <title>Document</title>
</head>

<body>

  <div class="container">    
    <button>Get</button>
    <h1>Result</h1>
  </div>

  <script src="script.js"></script>
</body>

</html>
.container {        
    text-align: center;
}

button {
  margin-top: 10px;
  padding: 10px 20px;
}

Javascript

  • We have selected the button element and h1 element using the document.querySelector() method and stored them in btnGet and output variables respectively.
  • We have attached a click event listener to the button element.
  • We have a global variable myString which holds a string as its value.
  • In the event handler function, we are calling the replaceCharacters() method and passing myString and 1 as parameters. This method will be responsible for replacing the last character and returning the new string.
  • In the replaceCharacters() method, we are calling the reverseString() method and passing str as a parameter. This method will reverse the string and return it.
  • We are using for loop to loop through all the characters in the string. Inside the loop, we are using replace() method to replace the last character with an exclamation mark (!).
  • The final string is stored in the newStr variable.
  • We are getting out of the loop using the break statement after replacing the last character.
  • The returned string is stored in the result variable and we are displaying the result in the h1 element using the innerText property.
let btnGet = document.querySelector("button");
let output = document.querySelector("h1");

let myString = "Hello world";

btnGet.addEventListener("click", () => {
  let result = replaceCharacters(myString, 1);
  output.innerText = result;
});

function replaceCharacters(str, num) {
  str = reverseString(str);
  let newStr = str;
  let count = 0;
  for (const char of str) {
    newStr = newStr.replace(char, "!");
    count++;
    if (count == num) {
      newStr = reverseString(newStr);
      break;
    }
  }
  return newStr;
}

function reverseString(str) {
  return str.split("").reverse().join("");
}