【问题标题】:How can I find the string and split it in node.js?如何在 node.js 中找到字符串并将其拆分?
【发布时间】:2016-05-02 07:46:58
【问题描述】:

我有一个像 ::ffff:127.0.0.1 这样的值,但我只需要 127.0.0.1。有没有办法在 node.js 中搜索字符串?

基本上我想匹配我需要拆分上述字符串的ip

拆分后,我需要检查数据库,因此我必须拆分上述字符串。该值总是像::ffff:137.3.3.1,所以我需要一个stringSplitter 函数来拆分我所有给定的输入。

【问题讨论】:

标签: javascript node.js string split


【解决方案1】:

我认为 Mukesh Sharma 是对的。但是如果你不想安装任何 npm 模块并保持简单,你可以这样做 -

function splitString(stringToSplit, separator) {
  var arrayOfStrings = stringToSplit.split(separator); // [ '', '', 'ffff', '127.0.0.1' ]
  return arrayOfStrings[3];
}

var yourString = "::ffff:127.0.0.1"; // or any other
var colon = ":";
var newIP = splitString(yourString, colon); // '127.0.0.1'

我认为这会对您有所帮助。谢谢!!

【讨论】:

    【解决方案2】:

    ::ffff:127.0.0.1 是 IPv6 ip 地址,其中::ffff: 是 IPv4(32 位)地址的子网前缀,位于 IPv6(128 位)空间内

    如果你想从::ffff:127.0.0.1中提取出127.0.0.1,可以使用ipaddr.js模块。

    npm install ipaddr.js

    使用ipaddr.js提取IPv4的示例代码

    var ipaddr = require('ipaddr.js');
    var addr = ipaddr.parse("::ffff:127.0.0.1");
    
    //if this address is an IPv4-mapped one
    if(addr.isIPv4MappedAddress()){
        //then, convert to IPv4 address
        var newAddr= addr.toIPv4Address().toString(); 
        console.log(newAddr); // 127.0.0.1
    }
    

    希望对你有帮助。

    【讨论】:

      【解决方案3】:
      var a = '::ffff:127.0.0.1'
      var search = a.search('127.0.0.1')
      
      if (search !== -1){
         var newIP1 = a.replace("::ffff:","")
         console.log(newIP1)
             //// OR ////
         var newIP2 = a.split("::ffff:")[1]
         console.log(newIP2)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-07
        • 1970-01-01
        • 2013-05-09
        • 2023-04-04
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        相关资源
        最近更新 更多