从jquery和ajax中的文本文件中提取IP地址

时间:2012-11-01 21:44:31

标签: jquery ajax

我有一个文本文件,我用ajax读取..现在的问题是我的文本文件中有两行字符串。当它只有一个时,我没有问题。

这是字符串

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?

3 个答案:

答案 0 :(得分: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]。如果这对您有用,请尝试告诉我。

答案 1 :(得分: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
}

答案 2 :(得分:0)

尝试替换

lines = data.lines;

lines = data.split('\n');