Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何验证广播IP地址(从224.0.0.0到239.255.255.255)_Javascript - Fatal编程技术网

Javascript 如何验证广播IP地址(从224.0.0.0到239.255.255.255)

Javascript 如何验证广播IP地址(从224.0.0.0到239.255.255.255),javascript,Javascript,我想验证广播和多播IP地址。 这是我使用的两个ip 255.255.0或229.0.0.20 ['validate-mcast-ip', 'Please enter a valid multicast ip in this field.', function (v) { if (v == "") return true; if (v == "0.0.0.0") return false; ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.

我想验证广播和多播IP地址。 这是我使用的两个ip 255.255.0或229.0.0.20

['validate-mcast-ip', 'Please enter a valid multicast ip in this field.', function (v) {
  if (v == "") return true;
  if (v == "0.0.0.0") return false;

  ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
  ipArray = v.split(".");
  isIP = ipPattern.test(v);
  if (isNaN(ipArray[0]) || ipArray[0] < 224 || ipArray[0] > 239) {
    isIP = false;
  }
  for (i = 1; i < ipArray.length; i++) {
    if (isNaN(ipArray[i]) || ipArray[i] > 255) {
      isIP = false;
    }
  }
  return isIP;
}],
['validate-mcast-ip',请在此字段中输入有效的多播ip',函数(v){
如果(v==“”)返回true;
如果(v==“0.0.0.0”)返回false;
ipPattern=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
ipArray=v.split(“.”);
isIP=i模式测试(v);
if(isNaN(ipArray[0])| | ipArray[0]<224 | | ipArray[0]>239){
isIP=假;
}
对于(i=1;i255){
isIP=假;
}
}
返回isIP;
}],

我想在输入多播IP和广播IP时发出警报。

那么您到底想做什么呢?您正在检查IP(已解析为四个项目的数组)是否符合您设置的某些限制。假设只允许224.0.0.0和239.255.255.255(含)之间的所有IP地址,以及225.225.225.0和229.0.0.20(如您最初所说)这两个地址。你是怎么做到的

首先,检查IP是否介于224.0.0.0和239.255.255.255之间(含)。因此,很容易看出,只需检查第一个数字。因此:

if(ipArray[0]<224||ipArray[0]>239)
    return false;
这是因为
&&
运算符比
|
运算符具有更高的值(请阅读本文的该部分!)

现在,利用我们新发现的知识,让我们重写您的原始代码:

function (v) {
    if(v=="") return true;
    if(v=="0.0.0.0") return false;

    if(!v.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/)) return false;
    ipArray = v.split(".");
    //We don't need to check for NAN anymore because it matched your
    //beautiful regex above
    if((ipArray[0]<224||ipArray[0]>239)&&v!="255.255.255.0"&&v!="229.0.0.20")
        return false;
    return true; //if we've reached this point, the IP conforms to the restrictions!
}
功能(v){
如果(v==“”)返回true;
如果(v==“0.0.0.0”)返回false;
if(!v.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/)返回false;
ipArray=v.split(“.”);
//我们不需要再检查NAN了,因为它符合你的要求
//美丽的正则表达式
如果((ipArray[0]239)和&v!=“255.255.255.0”和&v!=“229.0.0.20”)
返回false;
return true;//如果我们达到了这一点,那么IP符合限制条件!
}
你的问题有答案吗?如果是这样,不要忘记帮助堆栈溢出并将此答案标记为已接受(绿色复选标记)

一个“简单”的正则表达式,如
/^(2(?:2[4-9]| 3[0-9])\([0-2]?[0-9]?[0-9])\([0-2]?[0-9]?[0-9]?[0-9])。([0-2]?[0-9]?[0-9])$/g
应该做你想做的事情

function validateMulticastIP(ip) {
    return !!ip.match(/^(2(?:2[4-9]|3[0-9]))\.([0-2]?[0-9]?[0-9])\.([0-2]?[0-9]?[0-9])\.([0-2]?[0-9]?[0-9])$/g);
}
validateMulticastIP('2.3.5.6'); //false
validateMulticastIP('2'); //false
validateMulticastIP('230.3.5.6'); //true
validateMulticastIP('255.255.255.0'); //false
validateMulticastIP('229.0.0.20'); //true

上述代码适用于多播ip,但如何验证广播地址请参阅braod案例的这段代码,如果(isNaN(ipArray[0])| | ipArray[0]<224 | | ipArray[0]>239{isIP=false;}是的,这就是我想要的…让我试试上面的代码,我可以为ip 225.225.225.0抛出一个错误,但不能为229.0.0.20if(isNaN(ipArray[0])| | ipArray[0]<224 | | ipArray[0]>239&&v!=“225.225.0”&&v!=“229.0.0.20”){isIP=false;}这是我尝试过的,但是在案例229.0.0.20中它没有显示错误…但是它应该抛出一个错误不要忘记额外的括号。。。使用
if((isNAN(ipArray[0])|ipArray[0]239)和&v!=“225.225.225.0”和&v!=“229.0.0.20”)
作为if语句。看看这是否有效。(首先输入错误)是的,我写得很正确,但是为什么这个代码不起作用我不知道((isNaN(ipArray[0])239)和&v!=“225.225.0”&&v!=“229.0.0.20”){isIP=false;}请复制粘贴我的代码,而不是重新输入。您给出的代码不正确,请看
isNAN(ipArray[0])| | ipArray[0]“simple regex”,您想骗谁?(我开玩笑,我开玩笑)。如果您正在测试单个字符串值,则不需要
/g
,(全局)选项。
function (v) {
    if(v=="") return true;
    if(v=="0.0.0.0") return false;

    if(!v.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/)) return false;
    ipArray = v.split(".");
    //We don't need to check for NAN anymore because it matched your
    //beautiful regex above
    if((ipArray[0]<224||ipArray[0]>239)&&v!="255.255.255.0"&&v!="229.0.0.20")
        return false;
    return true; //if we've reached this point, the IP conforms to the restrictions!
}
function validateMulticastIP(ip) {
    return !!ip.match(/^(2(?:2[4-9]|3[0-9]))\.([0-2]?[0-9]?[0-9])\.([0-2]?[0-9]?[0-9])\.([0-2]?[0-9]?[0-9])$/g);
}
validateMulticastIP('2.3.5.6'); //false
validateMulticastIP('2'); //false
validateMulticastIP('230.3.5.6'); //true
validateMulticastIP('255.255.255.0'); //false
validateMulticastIP('229.0.0.20'); //true