2012-11-01 79 views
0

我有一個文本文件,我使用ajax讀取..現在問題是當我的文本文件中有兩行字符串。當它只有一個時,我沒有問題。從jquery和ajax中的文本文件中提取IP地址

這裏的字符串

New Connection from: 192.168.5.10 

沒問題,提取IP那裏。但問題是如果有兩條線或更多。

New Connection from: 192.168.5.10 
New Connection from: 192.168.5.30 

以下是我的工作方式。它適用於文本文件中只有一行字符串的情況。

$.ajax({ 
    type: "GET", 
    url: url, 
    async: true, 
    cache: false, 
    dataType: "JSON", 
    success: function(data) { 

     lines = data.lines; 
     var ip; 
     var ipset; 

     $(".dev").empty(); 

     for (var i = 0; i < lines.length; i++) { 

      $(".dev").append(lines[i] + "\n"); 

      ip = lines[i]; 

      console.log(getIP(ip)); 

      ipset = getIP(ip); 
     } 
    } 
});​ 

的getIP功能是:

function getIP(line) { 
    var out =line.split(": "); 
    return out[1]; 
} 

我怎樣才能使它工作從字符串只獲得了IP?

+1

該數據類型does not看起來JSON更換

lines = data.lines; 

給我。 –

+0

'data.lines'輸出什麼? – Bot

回答

0

最有可能它們被newline字符分隔。因此,你需要通過newline你得到IP

function getIP(line){ 
    var out = line.split("\n"); //returns lines 

    var ips = [] 

    for (var i = 0; i < out.length; i++) { 
     ips.push(out.split(': ')[1]); 
    } 

    return ips; 
} 

此功能之前,現在將返回IP地址的陣列分裂。

如果你只是想要第一個,那麼你可以getIP(ip)[0]。試試讓我知道這是否適合你。

0

您可以使用正則表達式來提取IP地址:

function getIP(lines) 
{ 
    var result = lines.match(/[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}/gm); 
    return result; 
    //result is an array 
} 
0

嘗試用

lines = data.split('\n'); 
相關問題