简体   繁体   English

如何从JavaScript中的字符串变量中提取IP地址

[英]how to extract ip address from string variable in javascript

i have written bellow code in javascript 我已经用JavaScript编写了波纹管代码

function reg()
{
    var a="ec2-54-234-174-228.compute-1.amazonaws.com";
    var r = a.match(/\-[0-9]*/g);
    alert(r);
}

i got output like -54,-234,-174,-228,-1 but i need to extract only 54-234-174-228 IP address from variable a. 我得到的输出是-54,-234,-174,-228,-1但我只需要从变量a中提取54-234-174-228 IP地址。

Try this: 尝试这个:

function reg()
{
    var a="ec2-54-234-174-228.compute-1.amazonaws.com";
    var r = a.match(/\-[0-9-]*/g);
    alert(r[0].substring(1,r[0].length));
}

a.match(/\\-[0-9-]*/g); will return [-54-234-174-228,-1] . 将返回[-54-234-174-228,-1] Getting the first element and removing - from the beginning you get what your IP. 获取第一个元素并删除-从一开始就获得IP。 You can also add this: 您还可以添加以下内容:

alert(r[0].substring(1,r[0].length).replace(/-/g, '.'));

to return it in IP shape: 54.234.174.228 以IP形式返回: 54.234.174.228

Try this regexp: /[0-9]{1,3}(-[0-9]{1,3}){3}(?=\\.)/ 尝试以下正则表达式:/[ /[0-9]{1,3}(-[0-9]{1,3}){3}(?=\\.)/

It matches a series of 4 numbers between 1 and 3 digits separated by -, which must be followed by a dot. 它与1到3位数字之间的一系列4个数字匹配,这些数字之间用-分隔,必须在其后跟一个点。

get the index of first "." 获取第一个“”的索引。 then slice 然后切

function reg()
{
    var a="ec2-54-234-174-228.compute-1.amazonaws.com";
    var r = a.indexOf(".");
    alert(a.slice(0,r));
}
"ec2-54-234-174-228.compute-1.amazonaws.com".split('.')[0].split('-').slice(1,5).join('.')

就您而言,您可以简单地使用以下模式:

var r = a.match(/([^a-z][0-9]+\-[0-9]+\-[0-9]+\-[0-9]+)/g);

您可以使用此正则表达式

"(\\d{2}-\\d{3}-\\d{3}-\\d{3})+"

One more example: 再举一个例子:

function reg() {
    var a="ec2-54-234-174-228.compute-1.amazonaws.com";
    var re = /-(\d+)/ig
    var arr = [];
    while(digit = re.exec(a)) arr.push(digit[1]);
    arr = arr.slice(0,4);

    alert(arr)
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM