jquery 如何在javascript中添加子字符串但不包括符号

yzuktlbb  于 2023-01-25  发布在  jQuery
关注(0)|答案(1)|浏览(102)

我需要在我的javascript web网络项目中使用(子字符串方法),但是排除:冒号符号,因为它是十六进制ip地址,我不想接受:冒号作为字符串或者让我们在子字符串中说数字,我想忽略它。怎么做?
这是输入字段中的IPV6示例:

2001:2eb8:0dc1:54ed:0000:0000:0000:0f31

在从1到12的子字符串之后:

001:2eb8:0d

你可以看到它也接受冒号,但实际上,我需要这个结果:

2001:2eb8:0dc1

所以排除这两个符号,它会给出上面的结果,但我不知道怎么做。
这是代码,IpAddressInput,只是一个普通的输入字段,我在其中写入了IP地址。
下面是代码:

var IpValue = $('#IpAddressInput').val();
    alert(IpValue.substr(1, (12) -1));
zour9fqk

zour9fqk1#

**答案1:**我认为没有直接的函数可以得到你想要的结果,但是这个答案会帮助你。我计算了从索引0到12的冒号的数量,然后将源字符串从0到12加上这个数字切片。

let val = "2001:2eb8:0dc1:54ed:0000:0000:0000:0f31";
let numOfColons = val.slice(0, 12).match(/:/g).length;
let result = val.slice(0, 12 + numOfColons);
console.log(result)

**答案2:**如果你确定每4个字符后面都有一个冒号,那么更好的解决方案是这样的:从字符串中删除所有冒号,从索引0到12进行切片,然后每4个字符后面添加一个冒号,最后删除最后一个冒号,代码如下:

let value = "2001:2eb8:0dc1:54ed:0000:0000:0000:0f31";
let valueExcludeColon = value.replace(/:/g, ''); // '20012eb80dc154ed0000000000000f31'
let result = valueExcludeColon.slice(0,12).replace(/(.{4})/g, "$1:"); // '2001:2eb8:0dc1:'
let finalResult = result.slice(0, -1); // 2001:2eb8:0dc1
console.log(finalResult)

相关问题