palindrome optimized

by rishul matta

JavaScript

function isPalindrome(A){
        if (!A) {
            return 0;
        }
        
        if (A.length == 1) {
            return 1;
        }
        
        var i = 0;
        var str = [];
        reg = new RegExp("[a-z0-9]{1}", "i");
        var forwardDirection = -1;
        var backwardDirection = A.length;
        var next = (function () {
            return function () {
                
                while(forwardDirection < A.length) {
                    forwardDirection++;
                     var ch = A.charAt(forwardDirection).toLowerCase();
                     if (reg.test(ch)) {
                         
                         return ch;
                     }
                }

            }
        })();
        
        var prev = (function () {
            return function () {
                while(backwardDirection > 0) {
                    backwardDirection--;
                     var ch = A.charAt(backwardDirection).toLowerCase();
                     if (reg.test(ch)) {
                         
                         return ch;
                     }
                }
 
            }
        })();

        while (i < A.length) {
            var forwardCh = next();
            var backwardCh = prev();
            if (backwardDirection >= forwardDirection){
              if (forwardCh != backwardCh) {
                    return 0;
                }  
            } else {
                return 1;
            }
            
            
        }
 
        
        return 1;
	}
  
  //isPalindrome("A man, a plan, a canal: Panama")
  //isPalindrome(".,")
    //isPalindrome("madam")