[TypeError: Cannot read properties of undefined (reading 'trim')] When not using trim() method

Hi. I am coding the palindrome project and at the end I get error:

[TypeError: Cannot read properties of undefined (reading ‘trim’)]

even though I am not using trim method anywhere. There error only occurs when I run the tests. Else the program works just fine, no errors.

html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Palidrome checker</title>
  <meta name="viewport" content="width=device-width,initial-scale=1" />
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <h1>Is it a palindrome?</h1>

  <container>
    <h3>Enter in text to check for a palindrome:</h2>
    <div id="inputDiv">
      <input id="text-input">
      <button id="check-btn">Check</button>
    <div>
    <div id="result">
    </div>
  </container>

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

Javascript:

const inputBox = document.getElementById("text-input");

const checkBtn = document.getElementById("check-btn");

const resultDiv = document.getElementById("result");

checkBtn.addEventListener("click", () => {
  let userInput = inputBox.value;

  CheckIfPalindrome(userInput);
});

function CheckIfPalindrome(str) {

    if (str == "") {
      resultDiv.textContent = "Please input a value";
    }
    else {
      let trimmedStr = removeSpecialChars(str).replace(" ", "");

      let reversedStr = "";

      for (let i = trimmedStr.length - 1; i >= 0; i--) {
        reversedStr += trimmedStr.charAt(i);
      }

      let result = `${str} ${trimmedStr === reversedStr ? "is a palindrome" : "is not a palindrome"}`

      resultDiv.textContent = result;
    }
}

function removeSpecialChars(str) {
  let newStr = "";
  for (let i = 0; i < str.length; i++) {
    const charCode = str.charCodeAt(i);
    if ((charCode >= 65 && charCode <= 90) || 
        (charCode >= 97 && charCode <= 122) ||
        (charCode >= 48 && charCode <= 57)) 
    {
      newStr += str[i];
    }
  }
  return newStr;
}

the trim method is used by the tests, make sure that all the elements requested by the user stories are present in your code

I wasn’t using alert() for the empty user input and that’s why the error occurred. Thanks!

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.