1. Palindrome Checker ```javascript // 解法1 function palindrome(str) { let chars = str.replace(/[^A-Za-z0-9]/g, ‘’) .toLowerCase() let start = 0; let end = chars.length - 1; while(start < end) { if (chars[start] !== chars[end]) { return false; } start++; end—; }
      return true; }

    palindrome(“A man, a plan, a canal. Panama”);

    // 解法2 function palindrome(str) { return str.replace(/[\W]/g, ‘’).toLowerCase() === str.replace(/[\W]/g, ‘’). toLowerCase().split(‘’).reverse().join(‘’) }

    palindrome(“A man, a plan, a canal. Panama”);

    // 解法3 function palindrome(str) { let chars = str.replace(/[\W_]/g, ‘’).toLowerCase() for(let i = 0, len = chars.length - 1; i < len / 2; i++) { if (chars[i] !== chars[len - i]) { return false; } } return true }

    palindrome(“A man, a plan, a canal. Panama”);

    // 解法4 function palindrome(str) { let front = 0; let back = str.length - 1; while(front < back) { if (/[\W_]/.test(str[front])) { front++ continue }

    1. if (/[\W_]/.test(str[back])) {
    2. back--;
    3. continue
    4. }
    5. if (str[front].toLowerCase() !== str[back].toLowerCase()){
    6. return false;
    7. }
    8. front++;
    9. back--;

    } return true }

    palindrome(“A man, a plan, a canal. Panama”); ```