求一个网址判断的正则表达式

mendel 2005-04-12 06:09:39
可以验证这样的IP地址:

正常的IP,如192.168.1.1
或者:192.168.1.*
或是:192.168.*.*

不允许:192.168.*.1之类的或其他不符合的网址,谢谢
...全文
326 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mendel 2005-04-19
  • 打赏
  • 举报
回复
谢谢楼上各位,结贴
essdy 2005-04-13
  • 打赏
  • 举报
回复
再次压缩如下
/(?:[1-9]\d?|1\d{2}|22[0-3]|2[01]\d)(?:\.(?:\d\d?|1\d{2}|2[0-4]\d|25[0-5])){3}/
(?:[1-9]\d?|1\d{2}|22[0-3]|2[01]\d)匹配1-223
[1-9]\d?匹配1-99
1\d{2}匹配100-199
22[0-3]匹配220-223
2[01]\d匹配200-219
(?:\d\d?|1\d{2}|2[0-4]\d|25[0-5])匹配0-255
\d\d?匹配0-99
1\d{2}匹配100-199
2[0-4]\d匹配200-249
25[0-5]匹配250-255
essdy 2005-04-13
  • 打赏
  • 举报
回复
(?:22[0-3]|2[01][0-9]|1\d{2}|[1-9]\d|[1-9])匹配1-223
22[0-3]匹配220-223
2[01][0-9]匹配200-219
1\d{2}匹配100-199
[1-9]\d匹配10-99
[1-9]匹配1-9
用或则匹配1-223
(?:\.(?:25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d|[0-9])){3}匹配三组.0-.255
原则同上
25[0-5]匹配250-255
2[0-4][0-9]匹配200-249
1\d{2}匹配100-199
[1-9]\d匹配10-99
[0-9]匹配0-9
用或匹配0-255
\.匹配.
(?:y)表示匹配y但是不保存(没有?一般用于保存)
essdy 2005-04-13
  • 打赏
  • 举报
回复
/(?:22[0-3]|2[01][0-9]|1\d{2}|[1-9]\d|[1-9])(?:\.(?:25[0-5]|2[0-4][0-9]|1\d{2}|[1-9]\d|[0-9])){3}/
scoutlin 2005-04-13
  • 打赏
  • 举报
回复
<script>
function ch(str)
{
var re=/^(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)$/;
if(!re.test(str))return false;
var chc=[];
chc[0]=str.replace(re,'$1');
chc[1]=str.replace(re,'$2');
chc[2]=str.replace(re,'$3');
chc[3]=str.replace(re,'$4');
for(var i=2;i>=0;i--)
if(chc[i]=="*")
for(var j=3;j>i;j--)
if(chc[j]!='*')return false;
return true;
}
alert(ch("192.168.*.1"));
</script>
mendel 2005-04-13
  • 打赏
  • 举报
回复
可是我要匹配*号的啊。。。不是只单单判断一个IP地址是否正确。。。。。
wjcking 2005-04-13
  • 打赏
  • 举报
回复
/^([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/
hongyan2004 2005-04-13
  • 打赏
  • 举报
回复
function isIPAdress(str)
{
return /^([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/.test(str);
}
myvicy 2005-04-13
  • 打赏
  • 举报
回复
利用正则表达式分解和转换IP地址:

下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
mendel 2005-04-13
  • 打赏
  • 举报
回复
up
mendel 2005-04-12
  • 打赏
  • 举报
回复
我想要正则表达式,呵呵
zhangweihui 2005-04-12
  • 打赏
  • 举报
回复
通过点进行分割。
或取由右向左去字符串str不等于1 就可以了。

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧