繁体   English   中英

如何找到字符串并将其拆分为node.js?

[英]How can I find the string and split it in node.js?

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

基本上我想匹配ip,为什么我需要拆分上面的字符串

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

我认为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'

我想这会对你有所帮助。 谢谢!!

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

如果要提取出127.0.0.1::ffff: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
}

希望,它可以帮助你。

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

暂无
暂无

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

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