Valid Palindrome Algorithm

A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters include letters and numbers.
Given a string s, return true if it is a palindrome, or false otherwise.
Input: s = "A man, a plan, a canal: Panama" Output: true Explanation: "amanaplanacanalpanama" is a palindrome.
var isPalindrome = function(s) {
s = s.toLowerCase().replace(/[^a-z0-9]/g, '')
let mainIndex = 0;
while(mainIndex < s.length / 2) {
if (s[mainIndex] !== s[s.length - mainIndex - 1]) {
return false;
}
mainIndex++
}
return true
};