我有一个文本文件,我用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?
答案 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');