Palindrome Check in JavaScript
Reverse it. If it matches, palindrome. 10 is not. 121 is.
BeginnerLoop ProgramsExample 5 of 6
palindrome-check.js
1// Palindrome: reads same forwards and backwards2// Examples: 121, "madam", "racecar"34// Method 1: String palindrome5function isPalindromeString(str) {6 str = str.toLowerCase().replace(/[^a-z0-9]/g, '');7 let reversed = str.split('').reverse().join('');8 return str === reversed;9}1011console.log("madam:", isPalindromeString("madam"));12console.log("hello:", isPalindromeString("hello"));13console.log("A man a plan a canal Panama:", isPalindromeString("A man a plan a canal Panama"));1415// Method 2: Number palindrome16function isPalindromeNumber(num) {17 let original = num;18 let reversed = 0;1920 while (num > 0) {21 reversed = reversed * 10 + (num % 10);22 num = Math.floor(num / 10);23 }2425 return original === reversed;26}2728console.log("\nNumber palindrome:");29console.log("121:", isPalindromeNumber(121));30console.log("123:", isPalindromeNumber(123));31console.log("1221:", isPalindromeNumber(1221));3233// Method 3: Two-pointer approach (efficient)34function isPalindromeTwoPointer(str) {35 str = str.toLowerCase().replace(/[^a-z0-9]/g, '');36 let left = 0;37 let right = str.length - 1;3839 while (left < right) {40 if (str[left] !== str[right]) {41 return false;42 }43 left++;44 right--;45 }46 return true;47}4849console.log("\nTwo-pointer approach:");50console.log("racecar:", isPalindromeTwoPointer("racecar"));51console.log("hello:", isPalindromeTwoPointer("hello"));5253// Method 4: Recursive approach54function isPalindromeRecursive(str) {55 str = str.toLowerCase().replace(/[^a-z0-9]/g, '');5657 if (str.length <= 1) return true;58 if (str[0] !== str[str.length - 1]) return false;5960 return isPalindromeRecursive(str.slice(1, -1));61}6263console.log("\nRecursive approach:");64console.log("level:", isPalindromeRecursive("level"));65console.log("world:", isPalindromeRecursive("world"));
Output
madam: true hello: false A man a plan a canal Panama: true Number palindrome: 121: true 123: false 1221: true Two-pointer approach: racecar: true hello: false Recursive approach: level: true world: false
What's going on
Same reverse as the last page, then ===. Negative numbers: this file says no.
Strings: strip spaces and case first or Racecar fails.