简体   繁体   English

用Javascript删除ip地址前导零?

[英]Remove ip address leading zeros with Javascript?

How do I convert my 010.017.007.152 style addresses (for easy database sorting) to 10.17.7.152 for display and hyperlinks using Javascript? 如何使用Javascript将我的010.017.007.152样式地址(便于数据库排序)转换为10.17.7.152以显示和超链接?

Samples: 010.064.214.210 010.064.000.150 010.064.017.001 127.000.0.001 10.0.00.000 样品:010.064.214.210 010.064.000.150 010.064.017.001 127.000.0.001 10.0.00.000

Many thanks. 非常感谢。

function fix_ip(ip) { return ip.split(".").map(Number).join("."); }

JSFiddle(h / t @DavidThomas): http//jsfiddle.net/davidThomas/c4EMy/

With regex, you can make replacements to many patterns. 使用正则表达式,您可以替换许多模式。 Something like this could work... 像这样的东西可以工作......

var ip = "010.064.214.210"
var formatted = ip.replace(/(^|\.)0+(\d)/g, '$1$2')
console.log(formatted)

Regex in plain english... 正则英语正则表达式...

/         # 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

Here is an option using string manipulation and conversion to integers. 这是一个使用字符串操作和转换为整数的选项。 Looks ugly compared to the regex solution by Billy Moon , but works: Billy Moon正则表达式解决方案相比看起来很丑陋,但有效:

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

Or, a tiny bit cleaner: 或者,一点点清洁:

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

Nirk's solution uses a similar method, and is even shorter, check it out. Nirk的解决方案采用了类似的方法,甚至更短,请查看。

You can use this code : 您可以使用此代码:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM