神秘error

JavaScript

String.prototype.replaceAll = function(targetText, newText){
    var result = this.replace(new RegExp(targetText, 'g'),newText);
    return result;
} 


var result = returnRealQuery("柯文哲")

console.log(result)


// 回傳正規化的關鍵字詞
function returnRealQuery(keyword){
    if(!keyword){
        return {query:[],keyword:""};
    }
    // console.log(keyword)
    var obj = {};
    obj['query'] = [];
    if (keyword == '__ALL__') {
        obj['query'][0] = '__ALL__';
        obj['keyword'] = '"__ALL__"';
    } else {
        var syntaxArr = ['+', '&', '+', '&', ' ', ' ', '-', '!', '-', '!', '/', '/', '|', '|', ',', ',', ')', '('];
        var wordArr = ['not', 'NOT', 'Not', 'or', 'OR', 'Or', ',', 'and', 'AND', ' ', ' '];
        // Trim spaces from start and end of the string.
        keyword = keyword.replace(/^\s+|\s+$/g, "");
        var queueStatus = 0,
            queue = '',
            resultQueue = '',
            commaCounter = 0;
        for (var i in keyword) {
        console.log(i)
            if (keyword[i] == '"') {
                queueStatus += 1;
            }
            if (keyword[i] == ',' || keyword[i] == ',') {
                commaCounter += 1;
            }
            if (queueStatus % 2 == 1) {
                resultQueue += keyword[i];
            } else if (queueStatus % 2 == 0 && keyword[i] == '"') {
                resultQueue += keyword[i];
                queue = '';
            } else if (syntaxArr.indexOf(keyword[i]) >= 0) {
                if (queue.length > 0) {
                    resultQueue += queue;
                    queue = '';
                }

                if ((keyword[i] == ',' || keyword[i] == ',') && commaCounter == 1) {
                    resultQueue += keyword[i].replace(/,|,/g, '|(');
                    continue;
                } else if ((keyword[i] == ',' || keyword[i] == ',') && commaCounter > 1) {
                    resultQueue += keyword[i].replace(/,|,/g, ')|(');
                } else {
               ...