[英]Try to validate IP Address with javascript
我是 javascript 的初学者。现在,我正在尝试制作一个表单以回发到服务器。 有一些包含 ip 地址的“输入”应该在提交前验证。 现在我做了一个 javascript function 效果很好。 但现在我正在尝试将这个 function 添加到 jquery 选择中。 只是混淆如何去做。
这是我的验证码 javascript。
function ValidateIPaddress(Ipfield)
{
IpAddr=Ipfield.value;
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(!IpAddr.match(ipformat))
return true;
else
return false;
}
这就是我现在实现此验证的方式。
<input type= "text" name= "LocalIP" style= "margin-right:10px " value="192.168.1.193" class="ip" onfocusout="ValidateIPaddress(document.getElementById('LocalIp'))" id="LocalIp" > Remote VIP Address :
<input type= "text" name= "RemoteVIPAddr" style= "margin-right:10px" value="234.5.6.7" class="ip" onfocusout="ValidateIPaddress(document.getElementById('RemoteIp'))" id="RemoteIp" >
Remote VIP Port :
<input type= "text" name= "RemoteVIPPort" style= "margin-right:10px" value="5004" class="ip" onfocusout="ValidatePort(document.getElementById('RemoteVIPPort'))" id="RemoteVIPPort">
现在我想使用 jquery 选择来始终检查是否有一些无效输入。 这是类似的东西,但使用我自己的设计 function。
$("input.ip:visible").filter(function() { return this.ValidateIPaddress === true }).addClass("invalid");
有人知道吗?
您没有在过滤器函数中调用ValidateIPAddress
,您只是在测试 DOM 元素是否具有名为ValidateIPAddress
的非空属性。 应该是:
$("input.ip:visible").filter(function() {
return ValidateIPAddress(this);
}).addClass("invalid");
试试这个:
isIP(ip) {
if (typeof(ip) !== 'string')
return false;
if (!ip.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)) {
return false;
}
return ip.split('.').filter(octect => octect >= 0 && octect <= 255).length === 4;
}
如果还需要接受 CIDR 格式的 IP/{0-32},请更新以下 2 行:
if (!ip.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(\/([0-9]|[12][0-9]|3[0-2]))?$/)) {
return ip.split('/')[0].split('.').filter(octet => octet >= 0 && octet <= 255).length === 4;
看看这是否有帮助。 这仅对 IP4 有效。 0.0.0.0 - 无效任何带有 CIDR 的 ip 都是无效的
function validateIP(ip) {
is_valid = false;
ip = ip.replace(/\s+/, "");
if(ip.indexOf('/')!=-1){
alert("IP not valid");
return false
}
try {
var ipb = ip.split('.');
if (ipb.length == 4) {
for (i = 0; i < ipb.length; i++) {
b = parseInt(ipb[i]);
if (b >= 0 && b <= 255) {
is_valid = true;
} else {
is_valid = false;
break;
}
}
}
} catch (exception) {
alert("IP is not valid")
return false;
}
if (!is_valid) {
alert("IP is not valid")
return false;
}
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.