私は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
私は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
これを試して:
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}(?=\.)/
これは、- で区切られた 1 ~ 3 桁の一連の 4 つの数字に一致し、その後にドットが続く必要があります。
最初の "." のインデックスを取得します。次にスライス
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})+"
もう 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)
}