<div>
<label for="input" class="input-label">Input:</label>
<input id="input" type='text' placeholder="Enter a palindrome text..." rows="5" />
<label for="output" class="output-label">Output:</label>
<pre id="output"></pre>
</div>
* {
margin: 0;
box-sizing: border-box;
}
div {
border: 3px solid grey;
margin: auto;
padding: 2rem 1rem;
background-color: #29282e;
border-radius: 0.3rem;
}
pre {
display: block;
position: relative;
top: 1rem;
color: #97c389;
overflow: auto;
line-height: 1.5rem;
background-color: #1b2b34;
padding: 0.5rem;
border: 2px solid #324149;
}
label {
color: #fff;
font-family: consolas;
display: block;
}
.input-label {
margin-bottom: 0.5rem;
}
.output-label {
margin-top: 0.5rem;
}
input {
width: 100%;
padding: 0.5rem;
}
// function that checks whether a string argument is a palindrome or not.
function palindromeChecker(str) {
const regex = /[a-zA-Z0-9]/g;
str = str.toLowerCase();
const arr = str.match(regex);
str = arr.join("");
let backwardStr = arr.reduceRight((str, char) => str + char);
return str === backwardStr;
}
// output
const input = document.getElementById("input");
const output = document.getElementById("output");
input.addEventListener("input", () => {
if (!input.value) {
output.textContent = "";
} else {
const val = palindromeChecker(input.value).toString();
output.textContent = "> " + val;
}
});
// tests
// console.log(palindromeChecker("eye"), "=> true");
// console.log(palindromeChecker("_eye"), "=> true");
// console.log(palindromeChecker("race car"), "=> true");
// console.log(palindromeChecker("not a palindromeChecker"), "=> false");
// console.log(palindromeChecker("A man, a plan, a canal. Panama"), "=> true");
// console.log(palindromeChecker("never odd or even"), "=> true");
// console.log(palindromeChecker("nope"), "=> false");
// console.log(palindromeChecker("almostomla"), "=> false");
// console.log(palindromeChecker("My age is 0, 0 si ega ym."), "=> true");
// console.log(palindromeChecker("1 eye for of 1 eye."), "=> false");
// console.log(palindromeChecker("0_0 (: /- :) 0-0"), "=> true");
// console.log(palindromeChecker("five|_/|four"), "=> false");
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.