Javascript 如何循环并构建IP地址

Javascript 如何循环并构建IP地址,javascript,for-loop,ip-address,Javascript,For Loop,Ip Address,给定1.1.%,其中%是一个通配符,我希望遍历所有可能的IP地址 到目前为止,我已经能够成功地用循环替换1%,但是当我尝试替换2时,它只是用相同的数字替换它。下面是我目前拥有的代码,任何关于如何放入第二个循环以获得第二个%的帮助都将不胜感激 代码: var wildCount = inputSt.match(/\%/g) //works out how many % are there var newPlaceholder ='' for (var i = 0; i < wildCou

给定1.1.%,其中%是一个通配符,我希望遍历所有可能的IP地址

到目前为止,我已经能够成功地用循环替换1%,但是当我尝试替换2时,它只是用相同的数字替换它。下面是我目前拥有的代码,任何关于如何放入第二个循环以获得第二个%的帮助都将不胜感激

代码:

var wildCount = inputSt.match(/\%/g)  //works out how many % are there
var newPlaceholder ='' 
for (var i = 0; i < wildCount.length; i++){
    newPlaceHolder =inputSt.split("%").join(i)
    for (var n = 0; n <=254; n++){
        newPlaceholder = inputSt.split("%").join(n)
     }
 }
var wildCount=inputSt.match(/\%/g)//计算出有多少个%
var newPlaceholder=''
对于(变量i=0;i对于(var n=0;nSo),您不希望通过在“%”字符上拆分来递增。最好按八位字节拆分:

var octets = inputSt.split('.');
这里有八位字节0-3(因为它是一个数组),然后可以执行递归if语句检查通配符和随动递增

for (var i = 0; i < octets.length; i++) {
   if (octets[i].match('%')) {
      Do some incrementing...
   }
}
for(变量i=0;i
显然,这段代码还没有完成。但它应该让您朝着正确的方向前进

提示-您希望支持1-4个通配符。因此,最好创建一个递增单个八位字节的函数。如果该八位字节不是最后一个带有通配符的八位字节,请再次调用同一个函数。该函数的内容如下。我将让您了解在何处以及如何执行单个递增操作:

function incrementOctet(octet) {
   if (octet < 3) {
      if (octets[octet + 1].match('%')) {
         incrementOctet(octet + 1);
      }
   }
}
函数递增八位字节(八位字节){
if(八位组<3){
if(八位字节[octet+1]。匹配('%')){
递增八位字节(八位字节+1);
}
}
}

此版本的anser使用递归来执行IP创建。它在小数上拆分,然后递归地遍历令牌以查看它们是否为%,如果是,则将它们交换为[0,tokenLimit],直到用尽所有可能

为了不破坏浏览器,我将tokenLimit设置为11,而不是255

var测试='1.1.%.';
var标记=test.split('.');
风险价值限额=11;
//在第一个令牌上启动递归循环,从替换值0开始
makeIP(令牌,0,0);
函数makeIP(令牌、索引、下一个值){
//如果索引没有超过最后一个标记,我们需要
//评估它是否应该改变
如果(索引}
请注意,stack overflow显示的控制台日志似乎并没有显示所有日志。运行此操作时,请查看实际的浏览器控制台。为此,我表示感谢!出于几个原因,我实际上只允许用户在输入中使用2个通配符,主要是因为他们将匹配的数据量。