2015-09-04 88 views
3

我有這個腳本:逗號腳本數據庫

$.get('file.txt', function(x) { 

var i; 
var pos = 0; 
var availableTags = []; 

x = x.split(/[\;,\n]+/); 

for (i = 0; i < x.length; i = i + 2) 
    availableTags[pos++] = x[i]; 

console.log(availableTags); 

$(function() { 
    $("#search").autocomplete({ 
    source: availableTags 
    }); 
}); 

}, 'text'); 

我想它來閱讀這個file.txt的

Supermarket;big shop where a wide range of products is sold 
Station;a place where you can take a train, a bus, etc. 
School;place where students learn 

雖然逗號並不是spliters,劇本理解的第一列他們是,並且在第二行的逗號之後,閱讀錯誤,因爲它理解公共汽車等項目。任何建議?

+0

你爲什麼不從REG-EXP,除去逗號'X = x.split(/ [\; \ n] + /);' – dreamweiver

+0

是給出的file.txt,並且不會改變?服務器端響應應該嘗試產生一些對象格式,如:{tag:「supermarket」,desc:「大商店...」},{tag:「station」,desc:「一個地方...」}等等上。這會讓客戶端的處理更輕鬆 – errand

+0

嗯,我很抱歉,但它就像dreamweiver的答案一樣簡單。以爲我曾嘗試......這是工作到很晚的問題。我應該刪除這個問題嗎? – Kathlyn

回答

1

只需從reg-exp x = x.split(/[\;\n]+/);中刪除逗號,因爲您的常規表達式正在根據; & ,分割字符串。

下面是校正後的代碼

JS CODE:

$.get('file.txt', function(x) { 
    var i; 
    var pos = 0; 
    var availableTags = []; 
    x = x.split(/[\;\n]+/); //removed ',' from regular-expression 
    for (i = 0; i < x.length; i = i + 2){ 
    availableTags[pos++] = x[i]; 
    } 

    console.log(availableTags); 

$(function() { 
    $("#search").autocomplete({ 
     source: availableTags 
    }); 
}); 
}, 'text'); 
+0

只是供參考:在JS中,沒有意義轉義';',既不在字符類內也不在其外。只需'/ [; \ n] + /'就夠了。 –

+0

哦,這很有趣,從來不知道 – dreamweiver