【问题标题】: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)
}