Javascript 如何验证IP地址以确保用户在四个部分中输入3位数字?

Javascript 如何验证IP地址以确保用户在四个部分中输入3位数字?,javascript,Javascript,我能够创建一个脚本来正确验证IP地址,就像这样 var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; if(g_form.getValue('src_nw_ip_hdcc').match(ipf

我能够创建一个脚本来正确验证IP地址,就像这样

var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;

if(g_form.getValue('src_nw_ip_hdcc').match(ipformat)){
    return true;
}else{
    alert("You have entered an invalid Network IP Address!");
    return false;
}
结果很好,但在此之前,他们提出了一个不寻常的要求,要求我验证用户输入3位数字,不允许输入1或2位数字,例如, 用户不能输入115.42.150.37,而必须输入115.042.150.037。如何添加验证以确保他们输入3位数字?

在您的代码中有[01]?[0-9][0-9]。它说它可以有一个前导0或1,或者后面不跟两个数字。简单的解决方法是删除?其中0和1是可选的

/^(25[0-5]|2[0-4][0-9]|[01][0-9][0-9])\.(25[0-5]|2[0-4][0-9]|[01][0-9][0-9])\.(25[0-5]|2[0-4][0-9]|[01][0-9][0-9])\.(25[0-5]|2[0-4][0-9]|[01][0-9][0-9])$/

你可以通过删除所有的?在正则表达式中。 这样,您的正则表达式每次需要3位数字,并接受192.168.001.001之类的内容

^(25[0-5]|2[0-4][0-9]|[01][0-9][0-9])\.(25[0-5]|2[0-4][0-9]|[01][0-9][0-9])\.(25[0-5]|2[0-4][0-9]|[01][0-9][0-9])\.(25[0-5]|2[0-4][0-9]|[01][0-9][0-9])$
您可以结合使用split和every来完成验证工作:

函数检查IPIP{ var isCorrect=ip.split'.'。everyaddr=>addr.length==3; 如果正确的话{ 返回“Ip地址正确”; } 返回“Ip地址不正确”; } var ip='115.042.150.037'; console.logcheckIpip; ip='11.042.150.037';
console.logcheckIpip 我认为这个正则表达式可以完成这项工作。希望这有帮助

常量正则表达式=/^25[0-5]| 2[0-4][0-9]|[01][0-9]{2}\.{3}25[0-5]| 2[0-4][0-9]|[01][0-9]{2}$/g; console.log“应该匹配”; console.log'255.255.255.255'.matchregex; 控制台日志'012.000.255.001'.matchregex; console.log'000.000.000'.matchregex; console.log“不应匹配”; console.log'255.255.255.'.matchregex; console.log'255.255.255.-1'.matchregex; console.log'.255.255'.matchregex; console.log'255.275.255.'.matchregex; console.log'255.275.255.1'.matchregex;
console.log'25.5.55.1'.matchregex;这是一个非常奇怪的要求。许多IP解析器将前导零解释为八进制而不是十进制,因此这些地址的解析方式不同。