Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4212501
  • 博文数量: 291
  • 博客积分: 8003
  • 博客等级: 大校
  • 技术积分: 4275
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-30 18:28
文章分类

全部博文(291)

文章存档

2017年(1)

2013年(47)

2012年(115)

2011年(121)

2010年(7)

分类: 系统运维

2011-06-01 21:58:03

下面这个函数是我按照ipv6的定义写的判断,可以用来判断正常的,缩写的ipv6格式,同时可以判断ipv6和ipv4混合的格式
  1. //统计 10F: 或者:10B的个数
  2. function cLength(str){
  3.   var reg = /([0-9a-f]{1,4}:)|(:[0-9a-f]{1,4})/gi;
  4.   var temp = str.replace(reg,' ');
  5.   return temp.length;
  6.  }
  7. /*
  8.  * 判断ipv6格式
  9.  * @author yifangyou
  10.  * @version gslb 2011-03-10
  11.  * */     
  12. function isIPv6(tmpstr)
  13. {
  14.         //CDCD:910A:2222:5498:8475:1111:3900:2020
  15.         var patrn=/^([0-9a-f]{1,4}:){7}[0-9a-f]{1,4}$/i;
  16.         var r=patrn.exec(tmpstr)
  17.         if(r)
  18.         {
  19.             return true;
  20.         }
  21.         if(tmpstr=="::"){
  22.             return true;
  23.         }
  24.         //F:F:F::1:1 F:F:F:F:F::1 F::F:F:F:F:1格式
  25.         patrn=/^(([0-9a-f]{1,4}:){0,6})((:[0-9a-f]{1,4}){0,6})$/i;
  26.         r=patrn.exec(tmpstr);
  27.         if(r)
  28.         {    
  29.             var c=cLength(tmpstr);
  30.             if(c<=7 && c>0)
  31.             {
  32.                 return true;
  33.             }
  34.         }                
  35.         //F:F:10F::
  36.         patrn=/^([0-9a-f]{1,4}:){1,7}:$/i;
  37.         r=patrn.exec(tmpstr);
  38.         if(r)
  39.         {
  40.             return true;
  41.         }
  42.         //::F:F:10F
  43.         patrn=/^:(:[0-9a-f]{1,4}){1,7}$/i;
  44.         r=patrn.exec(tmpstr);
  45.         if(r)
  46.         {
  47.             return true;
  48.         }
  49.         //F:0:0:0:0:0:10.0.0.1格式
  50.         patrn=/^([0-9a-f]{1,4}:){6}(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/i;
  51.         r=patrn.exec(tmpstr);
  52.         if(r)
  53.         {
  54.             if(r[2]<=255 && r[3]<=255 &&r[4]<=255 && r[5]<=255 )
  55.             return true;
  56.         }
  57.         //F::10.0.0.1格式
  58.         patrn=/^([0-9a-f]{1,4}:){1,5}:(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/i;
  59.         r=patrn.exec(tmpstr);
  60.         if(r)
  61.         {
  62.             if(r[2]<=255 && r[3]<=255 &&r[4]<=255 && r[5]<=255 )
  63.                 return true;
  64.         }
  65.         //::10.0.0.1格式
  66.         patrn=/^::(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/i;
  67.         r=patrn.exec(tmpstr);
  68.         if(r)
  69.         {
  70.             if(r[1]<=255 && r[2]<=255 &&r[3]<=255 && r[4]<=255)
  71.                 return true;
  72.         }
  73.         return false;
  74. }
阅读(2742) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~