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

时间:2013-09-03 09:31:35

标签: javascript

我在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地址。

7 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:2)

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

它匹配一系列4个数字,1到3位数字用 - 分隔,后跟一个点。

答案 2 :(得分:1)

获取第一个“。”的索引。切片

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

答案 3 :(得分:1)

"ec2-54-234-174-228.compute-1.amazonaws.com".split('.')[0].split('-').slice(1,5).join('.')

答案 4 :(得分:0)

在您的情况下,您可以简单地使用此模式:

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

答案 5 :(得分:0)

你可以使用这个regEx

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

答案 6 :(得分:0)

又一个例子:

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