是否使用Javascript删除ip地址前导零?

是否使用Javascript删除ip地址前导零?,javascript,Javascript,如何将010.017.007.152样式的地址(用于方便的数据库排序)转换为10.17.7.152,以便使用Javascript显示和超链接 样本: 010.064.214.210 010.064.000.150 010.064.017.001 127.000.0.001 10.0.00.000 非常感谢。使用regex,您可以替换许多模式。像这样的东西可能有用 var ip = "010.064.214.210" var formatted = ip.replace(/(^|\.)0+(\d)

如何将010.017.007.152样式的地址(用于方便的数据库排序)转换为10.17.7.152,以便使用Javascript显示和超链接

样本: 010.064.214.210 010.064.000.150 010.064.017.001 127.000.0.001 10.0.00.000


非常感谢。

使用regex,您可以替换许多模式。像这样的东西可能有用

var ip = "010.064.214.210"
var formatted = ip.replace(/(^|\.)0+(\d)/g, '$1$2')
console.log(formatted)
简单英语中的正则表达式

/         # start regex
(^|\.)    # start of string, or a full stop, captured in first group referred to in replacement as $1
0+        # one or more 0s
(\d)      # any digit, captured in second group, referred to in replacement as $2
/g        # end regex, and flag as global replacement

下面是一个使用字符串操作和转换为整数的选项。相比之下,它看起来很难看,但可以工作:

var ip = "010.064.000.150".split('.').map(function(octet){
    return parseInt(octet, 10);
}).join('.');
或者,稍微清洁一点:

var ip = "010.064.000.150".split('.').map(function(octet){
    return +octet;
}).join('.');


使用类似的方法,甚至更短,请查看。

您可以使用以下代码:

    var ip = " 010.017.007.152";
    var numbers = ip.split(".");
    var finalIp = parseInt(numbers[0]);
    for(var i = 1; i < numbers.length; i++){
        finalIp += "."+parseInt(numbers[i]);
    }

    console.log(finalIp);
var ip=“010.017.007.152”;
var编号=ip分割(“.”);
var finalIp=parseInt(数字[0]);
对于(变量i=1;i

JSFiddle(h/t@DavidThomas):

您只需删除前导零即可。哈哈!但我想让Javascript来做,而不是我。感谢加入。映射到数字构造函数的好主意!那就是我要去的地方,我可以给你一个机会吗映射构造函数很好:
vara=[未定义,'abc',1,2',null,3];a、 过滤器(布尔值);//=>['abc',1,2,3]
map如果不使用库(如jquery或下划线),可能无法在IE<8上工作-非常好的解决方案尽管nirk的解决方案是我最喜欢的。谢谢。谢谢你的详细分类。
function fix_ip(ip) { return ip.split(".").map(Number).join("."); }