正则表达式 IP 验证

这是我写的一个验证方式 但是有点问题

JScript codefunction isIp(ipAddress){                                                   
var patrn = /^(\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])\.(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])$/;
if(!patrn.exec(ipAddress))
{
//window.alert('地址不正确!');
return false;
}
 else{

return true;
}

}

 

当输入 01.10.10.151 、10.01.151.10 等会返回TRUE    我的意思就是怎么修改  对于每个每位 的首位不能为0.如果为0返回FALSE
 
 
问题点数:200 回复次数:46 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复  
 

 加为好友
发送私信
在线聊天
 cgisir
老韩
等级:
可用分等级:富农
总技术分:11960
总技术分排名:1572

 发表于:2008-11-04 17:17:371楼 得分:10
HTML code<script type="text/javascript">
        var reg = /^(?:[1-2][0-5]?[0-5]?\.){3}[1-2][0-5]?[0-5]$/;
        var str = '1.10.10.151'
        var str2 = '01.10.10.151';
        alert(reg.test(str)); // true;
        alert(reg.test(str2)); // false;
</script >

 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 cgisir
老韩
等级:
可用分等级:富农
总技术分:11960
总技术分排名:1572

 发表于:2008-11-04 17:18:532楼 得分:2
上面少点东西,考错了, 以这个为准

HTML code<script type="text/javascript">
        var reg = /^(?:[1-2][0-5]?[0-5]?\.){3}[1-2][0-5]?[0-5]?$/;
        var str = '1.10.10.151'
        var str2 = '01.10.10.151';
        alert(reg.test(str)); // true;
        alert(reg.test(str2)); // false;
</script >

 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xiao_fan85
小帆
等级:
可用分等级:贫农
总技术分:112
总技术分排名:85627

 发表于:2008-11-04 17:20:063楼 得分:5
string  reg =/^((1?\d?\d|(2([0-4]\d|5[0-5])))\.){3}(1?\d?\d|(2([0-4]\d|5[0-5])))$/
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 w161134025
 
等级:
可用分等级:乞丐
总技术分:1613
总技术分排名:13156

 发表于:2008-11-04 17:26:284楼 得分:5
//判断邮箱正则表达式 true 说明IP正确 false说明不正确
function IsEmail(str)
{
  var reg=/^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/;//匹配IPP的
    if(str.match(reg))
    {
        return true;
    }
    else
    {
        return false;
    }
}
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 ojlovecd
本命大限在田宅宫化忌
等级:
可用分等级:富农
总技术分:24383
总技术分排名:464
 发表于:2008-11-04 17:28:115楼 得分: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]).(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-04 17:31:106楼 得分:0
我说的不是很清楚 
所谓首位  的意思说 每个位置上 不能出现 01  03  012  035这种

可以是 0.0.0.0        1.0.0.0    255.255.255.0
192.168.0.1  等等 这些是可以出现的
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-04 17:39:217楼 得分:0
再补充一下 
举例说明吧

    例如拿这个 说明 A.B.C.D
要求  A是    1 <=A <=223
      B是        0 <=B <=255
      C是        0 <=C <=255
      D是        1 <=D <255

并且 A,B,C,D  每个数字如果大于0      不能出现上面所说的情况  01  010  015 等这种情况!
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 varlj
灰色逻辑  要做会说汪汪的老鼠
等级:
可用分等级:富农
总技术分:5310
总技术分排名:4162

 发表于:2008-11-04 18:23:048楼 得分:5
^(([1-9]\d?|1\d{2}|2[0-5]{2})\.)((\d{1,2}|1\d{2}|2[0-5]{2})\.){2}(1\d{2}|2[0-5]{2}|\d{1,2})$

我测试了几个,暂时没发现问题
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 java2000_net
老紫竹
等级:
可用分等级:掌柜
总技术分:98696
总技术分排名:53
2
2
9
 发表于:2008-11-04 18:55:579楼 得分:5
JAVA正则表达式验证IP地址
 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 kindwell
kind
等级:
可用分等级:中农
总技术分:1490
总技术分排名:14214

 发表于:2008-11-04 20:27:3110楼 得分:1
引用 7 楼 xql80329 的回复:
再补充一下 
举例说明吧

    例如拿这个 说明 A.B.C.D
要求  A是    1 <=A <=223
      B是        0 <=B <=255
      C是        0 <=C <=255
      D是        1 <=D <255

并且 A,B,C,D  每个数字如果大于0      不能出现上面所说的情况  01  010  015 等这种情况!
 

如果按照这个要求,那么0.0.0.0岂不是不可以?
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-05 08:43:2511楼 得分:0
对  不允许出现 四个0
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xiaoK
兼职软件开发
等级:
可用分等级:乞丐
总技术分:2720
总技术分排名:8105

 发表于:2008-11-05 10:21:3612楼 得分:1
引用 10 楼 kindwell 的回复:
引用 7 楼 xql80329 的回复:
再补充一下 
举例说明吧

    例如拿这个 说明 A.B.C.D
要求  A是    1 <=A <=223
      B是        0 <=B <=255
      C是        0 <=C <=255
      D是        1 <=D <255

并且 A,B,C,D  每个数字如果大于0      不能出现上面所说的情况  01  010  015 等这种情况!


如果按照这个要求,那么0.0.0.0岂不是不可以?
 

废话,0.0.0.0当然不是合法的IP地址咯
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-05 11:44:3913楼 得分:0
现在还没有正确答案哦
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-05 11:46:3714楼 得分:0
JS高手呢
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 Free_Wind22
...
等级:
可用分等级:富农
总技术分:2156
总技术分排名:10168

 发表于:2008-11-05 11:57:0515楼 得分:1
^(25[0-5]|2[0-4]\d?|10\d?|[1-9]\d?)\.(25[0-5]|2[0-4]\d?|10\d?|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|10\d?|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|10\d?|[1-9]\d?)$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 Free_Wind22
...
等级:
可用分等级:富农
总技术分:2156
总技术分排名:10168

 发表于:2008-11-05 12:00:3716楼 得分:10
上面的错了,这个应该可以...

^(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?)$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 rcom10002
KNIGHTRCOM
等级:
可用分等级:掌柜
总技术分:2370
总技术分排名:9222

 发表于:2008-11-05 13:29:5817楼 得分:1
^(2([0-4]\d|5[0-5])|[0-1]?\d{1,2})(\.(2([0-4]\d|5[0-5])|[0-1]?\d{1,2})){3}$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 lizhimin0310
送春来
等级:
可用分等级:中农
总技术分:768
总技术分排名:24379

 发表于:2008-11-05 13:52:0618楼 得分:1
引用 16 楼 Free_Wind22 的回复:
上面的错了,这个应该可以...

^(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?)$
 
d
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 mjjzg
mjjzg
等级:
可用分等级:富农
总技术分:9461
总技术分排名:2400
 发表于:2008-11-05 14:07:1919楼 得分:1
路过,顶一下,以表支持
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-05 14:35:1820楼 得分:0
大家可以看看WINDOWS 的  IP设置    和 网关    子网掩码设置  的条件是不一样的  
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xin198404
 
等级:
可用分等级:贫农
总技术分:102
总技术分排名:90355

 发表于:2008-11-05 15:50:2621楼 得分:80
function isIP(strIP)   
{
var re=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/; //IP正则   
  if(re.test( strIP ))   
  {
  var n1 = parseInt(RegExp.$1);
  var n2 = parseInt(RegExp.$2);
  var n3 = parseInt(RegExp.$3);
  var n4 = parseInt(RegExp.$4);
 
  //首位必需为1-223之间除127之外的任一数字,末位不能为0或255
  if((n1>0 && n1 <224 && n1!=127) && (n2>=0 && n2 <=255) && (n3>=0 && n3 <=255) && ( n4>0 && n4 <255))
  {
  return true;
  }
  }
  return false;   
}
 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xin198404
 
等级:
可用分等级:贫农
总技术分:102
总技术分排名:90355

 发表于:2008-11-05 15:52:2722楼 得分:1
//掩码合法性验证
function isMask(strMask)
{
//var reg=/^(\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])){3}$/; //IP正则
var reg=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;//IP正则
if(reg.test(strMask)) 
  {
  var n1 = parseInt(RegExp.$1);
  var n2 = parseInt(RegExp.$2);
  var n3 = parseInt(RegExp.$3);
  var n4 = parseInt(RegExp.$4);
  if(isNaN(n1) || isNaN(n2) || isNaN(n3) || isNaN(n4))
  {
  return false;
  }
  if( (n1>255 || n1 <0)|| (n2>255 || n2 <0) || (n3>255 || n3 <0) || (n4>255 || n4 <0))
  {
  return false;
  }

  var tmp = (n1*Math.pow(2,24))+(n2*Math.pow(2,16))+(n3*Math.pow(2,8))+n4;
if(tmp < Math.pow(2,31))
{
return false;
}
else
{
tmp -=  Math.pow(2,31);
//后续位必须为连续的1
for (i = 30; i > 1; i --)
{
if (tmp == 0)
{
break;
}
else if(tmp < Math.pow(2,i))
{
return false;
}
else
{
tmp -= Math.pow(2,i);
}
}
}
  }
  else//!reg.match( strMask)
  {
  return false;
  }
return true;
}

以上两个函数是一经常用到了,已经过多次测试应该没问题的
 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-05 16:06:4523楼 得分:0
引用 21 楼 xin198404 的回复:
function isIP(strIP)   
{
var re=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/; //IP正则   
  if(re.test( strIP ))   
  {
  var n1 = parseInt(RegExp.$1);
  var n2 = parseInt(RegExp.$2);
  var n3 = parseInt(RegExp.$3);
  var n4 = parseInt(RegExp.$4);
 
  //首位必需为1-223之间除127之外的任一数字,末位不能为0或255
  if((n1>0 && n1 <224 && n1!=127) && (n2>=0 && n2 <=255) && (n3…
 
这个有问题吧  随便测试一个 都不正确
222.1.1.100返回false        
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xin198404
 
等级:
可用分等级:贫农
总技术分:102
总技术分排名:90355

 发表于:2008-11-05 16:44:2324楼 得分:1
不会哦
我这边执行结果是true哦?

你可以用最简单的代码测试:

<html>
<head>
<title>test </title>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache" >
<meta http-equiv="Cache-Control" content="must-revalidate">
<meta http-equiv="Expires" content="-1">
</head>
<body>
</body>
<script language="JavaScript">
function isIP(strIP)   
{
var re=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/; //IP正则   
  if(re.test( strIP ))   
  {
  var n1 = parseInt(RegExp.$1);
  var n2 = parseInt(RegExp.$2);
  var n3 = parseInt(RegExp.$3);
  var n4 = parseInt(RegExp.$4);
 
  //首位必需为1-223之间除127之外的任一数字,末位不能为0或255
  if((n1>0 && n1 <224 && n1!=127) && (n2>=0 && n2 <=255) && (n3>=0 && n3 <=255) && ( n4>0 && n4 <255))
  {
  return true;
  }
  }
  return false;   
}

alert(isIP("222.1.1.100"));
</script>
</html>
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 kindwell
kind
等级:
可用分等级:中农
总技术分:1490
总技术分排名:14214

 发表于:2008-11-05 17:38:3925楼 得分:1
引用 12 楼 xiaoK 的回复:
引用 10 楼 kindwell 的回复:
引用 7 楼 xql80329 的回复:
再补充一下 
举例说明吧

    例如拿这个 说明 A.B.C.D
要求  A是    1 <=A <=223
      B是        0 <=B <=255
      C是        0 <=C <=255
      D是        1 <=D <255

并且 A,B,C,D  每个数字如果大于0      不能出现上面所说的情况  01  010  015 等这种情况!


如果按照这个要求,那么0.0.0.0岂不是不可以?


废话,0.0.0.0当然…
 

引用 6 楼 xql80329 的回复:
我说的不是很清楚 
所谓首位  的意思说 每个位置上 不能出现 01  03  012  035这种

可以是 0.0.0.0        1.0.0.0    255.255.255.0
192.168.0.1  等等 这些是可以出现的
 

我是看到楼主的这段话才提出那个问题的,你没有看全部的帖子说这话
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 sagezk
SAGEZK
等级:
可用分等级:富农
总技术分:15481
总技术分排名:955
 发表于:2008-11-05 20:42:1126楼 得分:5
JScript codefunction isIP(ipAddress) {
    var regxip = /((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)/;
    return regxip.test(ipAddress);
}

 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-06 08:37:3427楼 得分:0
我 把最终答案 写出来:

这个结果是结合 21 楼得出的


JScript code/**
* 判断是否为IP
*/

function isIp(ipAddress){                                                   
var re=/^(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?)$/;    
  if(re.test( ipAddress ))   
  {
  var n1 = parseInt(RegExp.$1);
  var n2 = parseInt(RegExp.$2);
  var n3 = parseInt(RegExp.$3);
  var n4 = parseInt(RegExp.$4);
 
  //首位必需为1-223之间除127之外的任一数字,末位不能为0或255
  if((n1>0 && n1 <224 && n1!=127) && (n2>=0 && n2 <=255) && (n3>=0 && n3 <=255) && ( n4>0 && n4 <255))
  {
  return true;
  }
  }
  return false;  

}

 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-06 08:38:5928楼 得分:0
顺便说一下21 楼  写的还有些小漏洞  就是对于 10.012.10.112  这种格式没进行控制
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-06 08:41:3829楼 得分:0
网上好多关于IP 的验证 并不严谨 
我上面给出的 应给是比较完美了    但是主要是顶我帖的人的功劳!
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 fendy5201
會飛嘚漁
等级:
可用分等级:中农
总技术分:625
总技术分排名:28837

 发表于:2008-11-06 09:01:0230楼 得分:1
采用这个试试看  var reg = /^(?:[1-2][0-5]?[0-5]?\.){3}[1-2][0-5]?[0-5]?$/;
 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 xql80329
技术空间:hi.baidu.com/xhz12345
等级:
可用分等级:中农
总技术分:2097
总技术分排名:10358

 发表于:2008-11-06 09:09:4931楼 得分:0
上午刚追加了100分
下午下班的时候 结贴!!!!!!!!!
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 luxu001207
? 笨笨
等级:
可用分等级:富农
总技术分:22471
总技术分排名:524

 发表于:2008-11-06 09:14:2632楼 得分:5
JScript code
var reg=/^[1-9]\d{2}\.(0|([1-9]\d{2}))\.(0|([1-9]\d{2}))\.(0|([1-9]\d{2}))$/;
alert(reg.test("127.0.0.1"));
alert(reg.test("172.016.051.100"));
alert(reg.test("172.16.51.100"));


 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 syukugai
syukugai
等级:
可用分等级:中农
总技术分:5136
总技术分排名:4491

 发表于:2008-11-06 09:26:0433楼 得分:1
^([1-9]|[1-9]\d|1\d{1,2}|2[01]\d|22[0-3])(.(\d|[1-9]\d|1\d{1,2}|2[0-4]\d|25[0-6])){2}.([1-9]\d?|1\d{1,2}|2[0-4]\d|25[0-6])$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 syukugai
syukugai
等级:
可用分等级:中农
总技术分:5136
总技术分排名:4491

 发表于:2008-11-06 09:29:3034楼 得分:1
改进了一点
^([1-9]\d?|1\d{1,2}|2[01]\d|22[0-3])(.(\d|[1-9]\d|1\d{1,2}|2[0-4]\d|25[0-6])){2}.([1-9]\d?|1\d{1,2}|2[0-4]\d|25[0-6])$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 sagezk
SAGEZK
等级:
可用分等级:富农
总技术分:15481
总技术分排名:955
 发表于:2008-11-06 09:30:5335楼 得分:1
引用 27 楼 xql80329 的回复:
我 把最终答案 写出来:

这个结果是结合 21 楼得出的

JScript code/**
* 判断是否为IP*/functionisIp(ipAddress){varre=/^(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?|0)\.(25[0-5]|2[0-4]\d?|1\d{2}|[1-9]\d?)$/;if(re.test( ipAddress ))   
  {varn1=parseInt(RegExp.$1);varn2=parseInt(RegExp.$2);varn3=parseInt(RegExp.$3);varn4=parseInt(…
 

用得着这么麻烦吗?你试试我 26 楼的方法。

JScript codefunction isIP(ipAddress) {
    var regxip = /((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)/;
    return regxip.test(ipAddress);
}

 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 syukugai
syukugai
等级:
可用分等级:中农
总技术分:5136
总技术分排名:4491

 发表于:2008-11-06 09:32:4036楼 得分:1
不好意思,之前写错了个地方。

^([1-9]\d?|1\d{1,2}|2[01]\d|22[0-3])(\.(\d|[1-9]\d|1\d{1,2}|2[0-4]\d|25[0-6])){2}\.([1-9]\d?|1\d{1,2}|2[0-4]\d|25[0-6])$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 syukugai
syukugai
等级:
可用分等级:中农
总技术分:5136
总技术分排名:4491

 发表于:2008-11-06 09:36:1237楼 得分:1
又写错了。

^([1-9]\d?|1\d{1,2}|2[01]\d|22[0-3])(\.(\d|[1-9]\d|1\d{1,2}|2[0-4]\d|25[0-5])){2}\.([1-9]\d?|1\d{1,2}|2[0-4]\d|25[0-4])$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 sagezk
SAGEZK
等级:
可用分等级:富农
总技术分:15481
总技术分排名:955
 发表于:2008-11-06 10:11:4338楼 得分:1
如果:首位必需为1-223之间除127之外的任一数字,末位不能为0或255,那就再改一下,如下:

JScript codefunction isIP(ipAddress) {
    var regxip = /(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){2}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)/;
    if (regxip.test(ipAddress)) {
        var b1 = parseInt(RegExp.$1);
        var b2 = parseInt(RegExp.$2);
        return b1 >= 1 && b1 <= 223 && b1 != 127 && b2 != 0 && b2 != 255;
    }
    return false;
}

 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 sagezk
SAGEZK
等级:
可用分等级:富农
总技术分:15481
总技术分排名:955
 发表于:2008-11-06 10:13:1039楼 得分:30
测试代码:

HTML code<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IP checker</title>
<script type="text/javascript">
//<![CDATA[
function isIP(ipAddress) {
    var regxip = /(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){2}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)/;
    if (regxip.test(ipAddress)) {
        var b1 = parseInt(RegExp.$1);
        var b2 = parseInt(RegExp.$2);
        return b1 >= 1 && b1 <= 223 && b1 != 127 && b2 != 0 && b2 != 255;
    }
    return false;
}
//]]>
</script>
</head>
<body>
<div>
<input type="text" id="txtip" name="ip" value="" />
<input type="button" id="btnck" value="Check" onclick="alert(isIP(document.getElementById('txtip').value));" />
</div>
</body>
</html>

 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 syukugai
syukugai
等级:
可用分等级:中农
总技术分:5136
总技术分排名:4491

 发表于:2008-11-06 10:41:4140楼 得分:5
引用 37 楼 syukugai 的回复:
^([1-9]\d?|1\d{1,2}|2[01]\d|22[0-3])(\.(\d|[1-9]\d|1\d{1,2}|2[0-4]\d|25[0-5])){2}\.([1-9]\d?|1\d{1,2}|2[0-4]\d|25[0-4])$
 

楼主有要求首位不能为127?
如果有的话还要再麻烦一点。

^([1-9]\d?|1[013-9]\d|12[0-689]|2[01]\d|22[0-3])(\.(\d|[1-9]\d|1\d{1,2}|2[0-4]\d|25[0-5])){2}\.([1-9]\d?|1\d{1,2}|2[0-4]\d|25[0-4])$
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 spyking945
CSDN
等级:
可用分等级:中农
总技术分:1501
总技术分排名:14010

 发表于:2008-11-06 10:44:5041楼 得分:1
mark 以后用
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 sagezk
SAGEZK
等级:
可用分等级:富农
总技术分:15481
总技术分排名:955
 发表于:2008-11-06 11:51:0442楼 得分:5
再优化一下:

JScript codefunction checkIP(ipstr) {
    var regxip = /^(?:22[0-3]|2[01]\d|12[0-689]|1[013-9]\d|[1-9]\d|[1-9])\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]\d|[1-9])$/;
    return regxip.test(ipstr);
}

 

测试代码:

HTML code<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IP checker</title>
<script type="text/javascript">
//<![CDATA[
function checkIP(ipstr) {
    var regxip = /^(?:22[0-3]|2[01]\d|12[0-689]|1[013-9]\d|[1-9]\d|[1-9])\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]\d|[1-9])$/;
    return regxip.test(ipstr);
}
//]]>
</script>
</head>
<body>
<div>
<input type="text" id="txtip" name="ip" value="" />
<input type="button" id="btnok" value="Check" onclick="alert(checkIP(document.getElementById('txtip').value));" />
</div>
</body>
</html>


 
 
修改 删除 举报 引用 回复  
 
 加为好友
发送私信
在线聊天
 syukugai
syukugai
等级:
可用分等级:中农
总技术分:5136
总技术分排名:4491

 发表于:2008-11-06 12:05:5143楼 得分:3
^([1-9]\d?|1[013-9]\d|12[0-689]|2[01]\d|22[0-3])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){2}\.([1-9]\d?|1\d{2}|2[0-4]\d|25[0-4])$

加支付宝好友偷能量挖...


评论(0)网络
阅读(144)喜欢(1)JavaScript/Ajax开发技巧