我用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
但我只需54-234-174-228
要从变量 a 中提取 IP 地址。
我用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
但我只需54-234-174-228
要从变量 a 中提取 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}(?=\.)/
它匹配由 - 分隔的 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})+"
再举一个例子:
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)
}