javascript - VueJS:计算计算辅助
问题描述
我需要能够将诸如 this 的字符串(IP 地址)转换为诸如 this10.120.0.1
的字符串(ISIS 网络 ID)49.0001.0101.2000.0001.00
。中间部分010 1.20 00.0 001
对应于第一个字符串(我已将它们隔开以显示 IP 地址在其中)。您可以看到每个 ISIS 网络 ID 十六进制中有 4 位数字需要对应 IP 地址八位字节中的 3 位数字。例如,一个数字53
将有一个前导0
来制作 3 位数字。
所有 IP 地址都以开头,10.120.
所以我只需要将 IP 地址的最后 2 个八位字节注入 ISIS 网络 ID。
我需要它是动态的,所以当有人在loopbackIP
输入中输入另一个 IP 地址时,它会自动更新该isisNetworkID
字段。
我有这个:
49.0001.0101.{{ isisNetworkID }}.00
这需要从v-model="loopbackIP"
我拥有的输入中获取值,并将剩余的值转换为isisNetworkID
遵循这种格式的中间值 - xxxx.xxxx
。
我有这个计算的计算,但我不知道如何让 4 位数字等于 3 ......
const loopbackIP = '10.120.0.1';
const isisNetworkID = computed(() => {
let idaho = '10.120.';
if (loopbackIP.indexOf(idaho)) {
return loopbackIP.slice(7);
} else {
console.log('Nothing is happening');
}
});
我希望这是有道理的...
解决方案
我想我理解你想要达到的目标。让我们把它分解成可消化的部分。您的 IP 地址为:
10.120.0.1
并且您想对其进行转换,以使每个部分都填充为 3 位数字:
['010', '120', '000', '001']
这可以通过按.
字符拆分字符串并使用String.prototype.padStart()
. 然后我们将数组重新连接成一个字符串:
'010120000001'
||||
^^^^ -> to be deleted
我们知道前 4 位数字是不需要的,因为它已经是您模板的一部分,所以我们可以使用String.prototype.substring(4)
. 这给我们留下了:
'20000001'
现在只需将其拆分为每个项目 4 个字符:
['2000', '0001']
...并以.
字符重新加入它:
'2000.0001'
...并将其插回字符串中。我在下面有一个概念验证示例,它应该输出所需的字符串:
const loopbackIP = '10.120.0.1';
const parts = loopbackIP.split('.').map(x => x.padStart(3, '0'));
// Remove the first 4 characters
let isisNetworkId = parts.join('');
isisNetworkId = isisNetworkId.substring(4);
const output = `49.0001.0101.${isisNetworkId.match(/.{4}/g).join('.')}.00`;
console.log(output);
所以如果你想把它翻译成你的 VueJS 代码,看起来应该没有什么不同:
const loopbackIP = '10.120.0.1';
const isisNetworkID = computed(() => {
const loopbackIP = '10.120.0.1';
const parts = loopbackIP.split('.').map(x => x.padStart(3, '0'));
let isisNetworkId = parts.join('');
isisNetworkId = isisNetworkId.substring(4);
// Rejoin, split into items of 4-character long, rejoin by period
return isisNetworkId.match(/.{4}/g).join('.');
});
推荐阅读
- ios - 无法检测到ios 13+以上的设备平台
- css - 如何在 Nuxtjs 中为每个布局包含本地(非全局)样式表文件
- jhipster - JHipster 网关应用程序登录失败
- javascript - Google Apps 脚本:类表示法和新对象
- python - 如何从python中的字典中获取值?
- reactjs - 如何在同一个根域下创建 2 个 PWA
- javascript - 编写一个 JavaScript 控制台程序来读取输入文件并将句子转换为首字母缩写词
- javascript - 如何在 CKEditor 4 中设置默认字体
- c++ - 使用动态编程的具有分区约束的 Max Sum 子数组
- javascript - 如何从阴影根元素中获取文本?