IP地址正则表达式匹配方法
这篇文章主要介绍了 IP地址正则表达式匹配方法的相关资料,需要的朋友可以参考下
正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
正则表达式
^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$
匹配 127.0.0.1 | 255.255.255.0 | 192.168.0.1
不匹配 1200.5.4.3 | abc.def.ghi.jkl | 255.foo.bar.1
正则表达式
^((0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})\.){3}(0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})(?(\/)\/([0-9]|[1-2][0-9]|3[0-2])|)$
匹配 192.168.0.1 | 192.168.0.1/32 | 255.255.0.0/1
不匹配 010.0.0.0 | 192.168.0.1/33 | 256.0.1.55
正则表达式
^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$
匹配 97.67.44.20 | 199.154.37.214 | 127.0.0.1
不匹配 63.125.94.287 | 140.370.a.187 | 94.923.1
正则表达式
/^(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\/(\d{1}|[0-2]{1}\d{1}|3[0-2])$/
匹配 192.168.100.1/24 | 0.0.0.0/0
不匹配 192.168.100.1/33 | 0.0.0.0/90
正则表达式
\d+\.\d+\.\d+\.\d+
匹配 127.0.0.1 | 255.255.255.0 | 192.168.0.1
不匹配 @#.5.4.3 | abc.def.ghi.jkl | 255.foo.bar.1
正则表达式
^((\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5])\.(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5])\.(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5])\.(\d|\d\d|[0-1]\d\d|2[0-4]\d|25[0-5]))$
匹配 1.198.0.1 | 100.10.0.1 | 200.200.123.123
不匹配 ..12.23 | a.23.345 | 400.500.300.300
正则表达式
^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$
匹配 0.0.0.0 | 255.255.255.02 | 192.168.0.136
不匹配 256.1.3.4 | 023.44.33.22 | 10.57.98.23.
正则表达式
^(http|https|ftp)\://(((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])|([a-zA-Z0-9_\-\.])+\.(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|uk|me))((:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*)$
匹配 http://www.allkins.com | http://255.255.255.255 | http://allkins.com/page.asp?action=1
不匹配 http://test.testing
正则表达式
^(([0-2]*[0-9]+[0-9]+)\.([0-2]*[0-9]+[0-9]+)\.([0-2]*[0-9]+[0-9]+)\.([0-2]*[0-9]+[0-9]+))$
匹配 113.173.40.255 | 171.132.248.57 | 79.93.28.178
不匹配 189.57.135 | 14.190.193999 | A.N.D.233
正则表达式
\b(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\b
匹配 217.6.9.89 | 0.0.0.0 | 255.255.255.255
不匹配 256.0.0.0 | 0978.3.3.3 | 65.4t.54.3
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../timebar/files/jquery.min.js"></script>
</head>
<body>
<input id="ip"><input id="button" type="button" value="测试" >
</body>
<script>
$(function () {
$("#button").click(getReg)
function getReg() {
let ip = $("#ip").val();
console.log("ip:",ip)
// var ip="172.16.2.2"
var message ="";
//末尾1个*位数 匹配 172.16.2.*
var pattern1 = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.\*$/;
//末尾两位 172.16.*.*
var pattern2 = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.\*\.\*$/;
//全ip 172.16.2.2
var pattern3=/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/;
//子网掩码正则 172.162.2/255.255.255.0
var pattern4 =/^((128|192)|2(24|4[08]|5[245]))(\.(0|(128|192)|2((24)|(4[08])|(5[245])))){3}$/
if (!ip) message="扫描网段不能为空";
else if (ip.match(pattern1) != null) {
message="正确1";
}
else if (ip.match(pattern2) != null) {
message="正确2";
}
else if (ip.split("/").length==2 && ip.split("/")[0].match(pattern3) ) {
if(ip.split("/")[1]>=8 && ip.split("/")[1]<=32 ){
console.log("符合8-32")
message="正确3";
}else if(ip.split("/")[1].match(pattern4)){
console.log("子网掩码正确")
message="正确4";
}else{
message="扫描网段有误,参考172.16.2.2/8或172.16.2.2/255.255.255.0";
}
}
else message="扫描网段有误,参考172.16.2.*";
console.log(message)
}
})
</script>
</html>