2012-11-01 80 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'); 
相关问题