0

私はjavascriptで以下のコードを書きました

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

のような出力が得られましたが、変数 a から IP アドレス -54,-234,-174,-228,-1のみを抽出する必要があります。54-234-174-228

4

7 に答える 7

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

于 2013-09-03T09:39:17.603 に答える
2

この正規表現を試してください:/[0-9]{1,3}(-[0-9]{1,3}){3}(?=\.)/

これは、- で区切られた 1 ~ 3 桁の一連の 4 つの数字に一致し、その後にドットが続く必要があります。

于 2013-09-03T09:39:32.900 に答える
1

最初の "." のインデックスを取得します。次にスライス

function reg()
{
    var a="ec2-54-234-174-228.compute-1.amazonaws.com";
    var r = a.indexOf(".");
    alert(a.slice(0,r));
}
于 2013-09-03T09:40:08.443 に答える
1
"ec2-54-234-174-228.compute-1.amazonaws.com".split('.')[0].split('-').slice(1,5).join('.')
于 2013-09-03T09:45:20.980 に答える
0

あなたの場合、次のパターンを簡単に使用できます。

var r = a.match(/([^a-z][0-9]+\-[0-9]+\-[0-9]+\-[0-9]+)/g);
于 2013-09-03T09:42:46.673 に答える
0

この正規表現を使用できます

"(\\d{2}-\\d{3}-\\d{3}-\\d{3})+"
于 2013-09-03T09:46:48.510 に答える
0

もう 1 つの例:

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)
}
于 2013-09-03T09:59:36.390 に答える