SOURCE

var isPalindrome = function(s) {
    // 非空判断
    if (s == null) { 
        return false;
    }
    if (s.length == 0) { 
        return true;
    }
    // 字母小写处理
    s = s.toLowerCase();
    // 提取字符串中的数字和字母
    var afterS = '';
    for (var i = 0; i < s.length; i++) {
        var option1 = s[i] >= '0' && s[i] <= '9' ? true : false;
        var option2 = s[i] >= 'a' && s[i] <= 'z' ? true : false;
        if (option1 || option2) {
            afterS += s[i];
        }
    }
    var reverseS = afterS.split('').reverse().join('');
    return reverseS == afterS;
};

var isPalindrome1 = function(s) {
    // 非空判断
    if (s == null) { 
        return false;
    }
    if (s.length == 0) { 
        return true;
    }
    const reg = /[^a-z0-9]/gi; // 匹配所有的不是a-z或0-9的字符
    let afterS = s.replace(reg, '').toLowerCase(); // 筛选出只有a-z 0-9的字符并将字母进行小写处理
    var reverseS = afterS.split('').reverse().join('');
    return reverseS == afterS;
};



var s = "A man, a plan, a canal: Panama";
console.log(isPalindrome(s))
console.log(isPalindrome1(s))
console 命令行工具 X clear

                    
>
console