如何在javascript中从字符串变量中提取ip地址

how to extract ip address from string variable in javascript

本文关键字:变量 提取 ip 地址 字符串 javascript      更新时间:2023-09-26

我已经用javascript 编写了以下代码

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

我得到了类似-54,-234,-174,-228,-1的输出,但是我只需要从变量a中提取54-234-174-228 IP地址。

试试这个:

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);将返回[-54-234-174-228,-1]。获得第一个元素并从一开始就删除-,你就得到了你的IP。你也可以添加这个:

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

以IP形式返回:54.234.174.228

试试这个正则表达式:/[0-9]{1,3}(-[0-9]{1,3}){3}(?='.)/

它匹配一系列4个数字,介于1到3位之间,由-分隔,后面必须跟一个点。

获取第一个"."的索引,然后切片

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);

还有一个例子:

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)
}

您可以使用此regEx

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