如何在jquery中检查IP地址的验证
Posted
技术标签:
【中文标题】如何在jquery中检查IP地址的验证【英文标题】:How to check validation of IP Address in jquery 【发布时间】:2013-07-09 09:46:17 【问题描述】:我需要在我的项目中添加 IP 验证。jquery 或 jquery mobile 中是否有任何功能。以便验证输入字段?
谢谢
【问题讨论】:
你应该找regular expressions
在提问之前做一些基础研究。看看这个gist.github.com/bcoughlan/2649187
我只需要验证 ip ..就像我们在电话号码中所做的那样 ..tEXT
我在 juery 手机上使用 phonegap ..仅将 Ip 地址验证为 .User 不正确的文本 .user 只能用点写数字
Here是你的答案。
【参考方案1】:
您可以使用正则表达式来测试 IP 是否有效:
"127.0.0.1".match(/^(?:[0-9]1,3\.)3[0-9]1,3$/);
【讨论】:
并没有真正验证 ip:"999.0.0.1".match(/^(?:[0-9]1,3\.)3[0-9] 1,3$/); @Rohit 原因是正确的,这不是一个有效的 IP。但是你明白了,如果你想测试有效的 IP,你可能需要一个更复杂的正则表达式【参考方案2】:参考这个文件 IP validation
这里他使用了 jqueryvalidator.js 并举例说明。
$.validator.addMethod('IP4Checker', function(value)
return value.match(/^(?:[0-9]1,3\.)3[0-9]1,3$/);
, 'Invalid IP address');
$('#form1').validate(
rules:
ip:
required: true,
IP4Checker: true
);
【讨论】:
您好,您的面具不起作用,请尝试这个 /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[ 0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d| [1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\ d|2([0-4]\d|5[0-5]))$/; 无法正常工作。面具不正确。检查:oreilly.com/library/view/regular-expressions-cookbook/… @JaiKumaresh 如果它对您不起作用并且您知道正确的答案,那么您可以在这里发表评论,您可以给出自己的答案,因为它当时是有效的答案并被 OP 接受。因此,请尝试给出答案,而不是编辑工作和现有答案。【参考方案3】:我使用 jQuery 验证插件:
$.validator.addMethod('IP4Checker', function(value)
var ip = "^(([0-9]|[1-9][0-9]|1[0-9]2|2[0-4][0-9]|25[0-5])\.)3([0-9]|[1-9][0-9]|1[0-9]2|2[0-4][0-9]|25[0-5])$";
return value.match(ip);
, 'Invalid IP address');
$('#form').validate(
rules:
ip:
required: true,
IP4Checker: true
);
希望有帮助。
参考:Regular expression to match DNS hostname or IP Address?
【讨论】:
你从最佳答案中复制了它 我不这么认为,请参阅正则表达式。 "^(([0-9]|[1-9][0-9]|1[0-9]2|2[0-4][0-9]|25[0-5]) \.)3([0-9]|[1-9][0-9]|1[0-9]2|2[0-4][0-9]|25[0- 5])$"【参考方案4】:您好,这是 IP 地址的最佳解决方案和掩码
$.validator.addMethod('IP4Checker', function(value)
var ip = /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$/;
return value.match(ip);
, 'Invalid IP address');
var $validator = $("#addCardForm").validate(
rules:
txtIP:
required: true,
IP4Checker: true
);
【讨论】:
【参考方案5】:简短版:
^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$))4$
在这里解释 https://***.com/a/26445549/3356679
【讨论】:
谢谢,这里有完整的细节和解释。【参考方案6】:这应该适用于 IP 地址
$.validator.addMethod('IP4Checker', function(value)
var ip="^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
return value.match(ip);
, 'Invalid IP address');
$('#remoteForm').validate(
rules:
ipAddr:
required: true,
IP4Checker: true
);
【讨论】:
【参考方案7】:/*
validIpAddressRegex = "^(([0-9]|[1-9][0-9]|1[0-9]2|2[0-4][0-9]|25[0-5])\.)3([0-9]|[1-9][0-9]|1[0-9]2|2[0-4][0-9]|25[0-5])$";
validHostnameRegex = "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$";
*/
$.validator.addMethod('ipChecking', function(value)
//var ip = "^(?:(?:25[0-5]2[0-4][0-9][01]?[0-9][0-9]?)\.)3" +"(?:25[0-5]2[0-4][0-9][01]?[0-9][0-9]?)$";
validIpAddressRegex = "^(([0-9]|[1-9][0-9]|1[0-9]2|2[0-4][0-9]|25[0-5])\.)3([0-9]|[1-9][0-9]|1[0-9]2|2[0-4][0-9]|25[0-5])$";
ipCheckFlag = true;
ipLists = value.split(',');
for(ip=0; ip<ipLists.length; ip++)
if(!ipLists[ip].trim().match(validIpAddressRegex))
ipCheckFlag = false;
return ipCheckFlag;
);
link
【讨论】:
【参考方案8】:@RAVI MONE 补充回答带有子网掩码的 IP 地址:
$.validator.addMethod('IP4Checker', function(value)
var ip="^$|([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])((/([01]?\\d\\d?|2[0-4]\\d|25[0-5]))?)$";
return value.match(ip);
, 'Invalid IP address.');
【讨论】:
【参考方案9】:如果IP地址格式正确,该函数返回true
,否则返回false
:
function isIpAddressValid(ipAddress)
if (ipAddress == null || ipAddress == "")
return false;
var ip = '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)3' +
'(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$';
if (ipAddress.match(ip) != null)
return true;
【讨论】:
以上是关于如何在jquery中检查IP地址的验证的主要内容,如果未能解决你的问题,请参考以下文章