0

ajaxを使用して読み取ったテキストファイルがあります。問題は、テキストファイルに2行の文字列がある場合です。たった1つでも問題ありません。

これが文字列です

New Connection from: 192.168.5.10

そこでIPを抽出しても問題ありません。しかし、問題は2行以上あるかどうかです。

New Connection from: 192.168.5.10
New Connection from: 192.168.5.30

これが私のやり方です。テキストファイルに文字列が1行しかない場合に機能します。

$.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のみを取得するようにするにはどうすればよいですか?

4

3 に答える 3

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]。これがうまくいくかどうか教えてください。

于 2012-11-01T21:48:26.187 に答える
0

交換してみる

lines = data.lines;

lines = data.split('\n');
于 2012-11-01T22:01:07.723 に答える
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
}
于 2012-11-01T21:59:18.587 に答える