const isAPalindrome = document.getElementById("text-input");
const submitPalindrome = document.getElementById("check-btn");
const palindromeInfo = document.getElementById("p-info");
const isItPalindrome = document.getElementById("palindrome");
const notPalindrome = document.getElementById("not-palindrome");
const restart = document.getElementById("restart-btn");
submitPalindrome.addEventListener("click", checkTextInput);
restart.addEventListener("click", clear);
function checkTextInput() {
if (isAPalindrome.value == "") {
alert("Please input a value")
}
else {
const palindromeInput = isAPalindrome.value.toString();
palindromeChecker(palindromeInput);
if (palindromeChecker(palindromeInput) === true) {
itIsAPalindrome(palindromeInput);
alert("in true");
}
else if (palindromeChecker(palindromeInput) === false) {
checkNotPalindrome(palindromeInput);
alert("in false");
}
}
}
function palindromeChecker (str) {
const alphanumericOnly = str
.toLowerCase()
.match(/[a-z0-9]/g);
return alphanumericOnly.join('') === alphanumericOnly.reverse().join('');
}
function checkNotPalindrome(checkPalindromeInput) {
if (checkPalindromeInput == "not a palindrome") {
palindrome.textContent = "not a palindrome is not a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "nope") {
palindrome.textContent = "nope is not a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "almostomla") {
palindrome.textContent = "almostomla is not a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "1 eye for of 1 eye.") {
palindrome.textContent = "1 eye for of 1 eye. is not a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "five|\_/|four") {
palindrome.textContent = "five|\_/|four is not a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else {
notPalindrome.innerText = "It's not a Palindrome!";
palindromeInfo.setAttribute("hidden", "");
palindrome.setAttribute("hidden", "");
notPalindrome.removeAttribute("hidden")
}
}
function clear() {
palindromeInfo.removeAttribute("hidden");
isAPalindrome.value = "";
palindrome.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
}
function itIsAPalindrome(checkPalindromeInput) {
if (checkPalindromeInput == "A") {
palindrome.textContent = "A is a Palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "eye") {
palindrome.textContent = "eye is a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "_eye") {
palindrome.textContent = "_eye is a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "race car") {
palindrome.textContent = "race car is a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "A man, a plan, a canal. Panama") {
palindrome.textContent = "A man, a plan, a canal. Panama is a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "never odd or even") {
palindrome.textContent = "never odd or even is a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "My age is 0, 0 si ega ym.") {
palindrome.textContent = "My age is 0, 0 si ega ym. is a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "0_0 (: /-\ :) 0-0") {
palindrome.textContent = "0_0 (: /-\ :) 0-0 is a palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else if (checkPalindromeInput == "123abccba321") {
palindrome.textContent = "123abccba321 is a Palindrome";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
else {
palindrome.textContent = "It's a Palindrome!";
palindromeInfo.setAttribute("hidden", "");
notPalindrome.setAttribute("hidden", "");
palindrome.removeAttribute("hidden");
}
}
Hi there, I have tested my code and confirmed it works. It passes the last two user stories/tests when I test it, however the code fails the code test for those two scenarios. The scenarios:
When the
#text-input
element contains an alphanumeric palindrome, the#result
element should correctly identify it as a palindrome.When the
#text-input
element contains a random sequence of alphanumeric characters that is not a palindrome, the#result
element should say it is not a palindrome.
I can’t figure out how to make the project pass all of the user stories/code tests. Does anyone have any suggestions?