javascript判断IPV6格式

简介:

随着ipv6的普及,在web上添加ip6地址的要求逐渐增多,下面这个函数是我按照ipv6的定义写的判断,可以用来判断正常的,缩写的ipv6格式,同时可以判断ipv6和ipv4混合的格式:

 

 
  1. //统计 10F: 或者:10B的个数  
  2.  
  3. function cLength(str){   
  4.  
  5.   var reg = /([0-9a-f]{1,4}:)|(:[0-9a-f]{1,4})/gi;   
  6.  
  7.   var temp = str.replace(reg,' ');   
  8.  
  9.   return temp.length;   
  10.  
  11.  }   
  12.  
  13. /*  
  14.  
  15.  * 判断ipv6格式  
  16.  
  17.  * @author yifangyou  
  18.  
  19.  * @version gslb 2011-03-10  
  20.  
  21.  * */       
  22.  
  23. function isIPv6(tmpstr)  
  24.  
  25. {  
  26.  
  27.         //CDCD:910A:2222:5498:8475:1111:3900:2020   
  28.  
  29.         var patrn=/^([0-9a-f]{1,4}:){7}[0-9a-f]{1,4}$/i;   
  30.  
  31.         var r=patrn.exec(tmpstr)  
  32.  
  33.         if(r)  
  34.  
  35.         {  
  36.  
  37.             return true;  
  38.  
  39.         }  
  40.  
  41.         if(tmpstr=="::"){  
  42.  
  43.             return true;  
  44.  
  45.         }  
  46.  
  47.         //F:F:F::1:1 F:F:F:F:F::1 F::F:F:F:F:1格式  
  48.  
  49.         patrn=/^(([0-9a-f]{1,4}:){0,6})((:[0-9a-f]{1,4}){0,6})$/i;   
  50.  
  51.         r=patrn.exec(tmpstr);  
  52.  
  53.         if(r)  
  54.  
  55.         {      
  56.  
  57.             var c=cLength(tmpstr);  
  58.  
  59.             if(c<=7 && c>0)  
  60.  
  61.             {  
  62.  
  63.                 return true;  
  64.  
  65.             }  
  66.  
  67.         }                  
  68.  
  69.         //F:F:10F::  
  70.  
  71.         patrn=/^([0-9a-f]{1,4}:){1,7}:$/i;   
  72.  
  73.         r=patrn.exec(tmpstr);  
  74.  
  75.         if(r)  
  76.  
  77.         {  
  78.  
  79.             return true;  
  80.  
  81.         }  
  82.  
  83.         //::F:F:10F  
  84.  
  85.         patrn=/^:(:[0-9a-f]{1,4}){1,7}$/i;   
  86.  
  87.         r=patrn.exec(tmpstr);  
  88.  
  89.         if(r)  
  90.  
  91.         {  
  92.  
  93.             return true;  
  94.  
  95.         }  
  96.  
  97.         //F:0:0:0:0:0:10.0.0.1格式  
  98.  
  99.         patrn=/^([0-9a-f]{1,4}:){6}(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/i;   
  100.  
  101.         r=patrn.exec(tmpstr);  
  102.  
  103.         if(r)  
  104.  
  105.         {  
  106.  
  107.             if(r[2]<=255 && r[3]<=255 &&r[4]<=255 && r[5]<=255 )  
  108.  
  109.             return true;  
  110.  
  111.         }  
  112.  
  113.         //F::10.0.0.1格式  
  114.  
  115.         patrn=/^([0-9a-f]{1,4}:){1,5}:(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/i;   
  116.  
  117.         r=patrn.exec(tmpstr);  
  118.  
  119.         if(r)  
  120.  
  121.         {  
  122.  
  123.             if(r[2]<=255 && r[3]<=255 &&r[4]<=255 && r[5]<=255 )  
  124.  
  125.                 return true;  
  126.  
  127.         }  
  128.  
  129.         //::10.0.0.1格式  
  130.  
  131.         patrn=/^::(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/i;   
  132.  
  133.         r=patrn.exec(tmpstr);  
  134.  
  135.         if(r)  
  136.  
  137.         {  
  138.  
  139.             if(r[1]<=255 && r[2]<=255 &&r[3]<=255 && r[4]<=255)  
  140.  
  141.                 return true;  
  142.  
  143.         }  
  144.  
  145.         return false;  
  146.  
  147. }  

 



     本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/615893,如需转载请自行联系原作者

相关文章
|
1月前
|
JavaScript 前端开发
JS将两个数组和合并成数组包对象格式的方法
JS将两个数组和合并成数组包对象格式的方法
35 0
|
1月前
|
前端开发 JavaScript Java
JavaScript复制内容到剪切板 带格式的复制
JavaScript复制内容到剪切板 带格式的复制
|
1月前
|
JSON JavaScript 数据格式
Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
|
1月前
|
JSON JavaScript 数据格式
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
80 0
|
1月前
|
JavaScript 前端开发
将base64格式的图片画到canvas上(js和vue两种)
将base64格式的图片画到canvas上(js和vue两种)
208 1
|
9月前
|
JSON JavaScript 数据格式
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
99 0
|
1月前
编程笔记 html5&css&js 007 HTML文本:段落和格式
编程笔记 html5&css&js 007 HTML文本:段落和格式
|
10月前
|
XML JavaScript 数据格式
JS 最简单的XML格式Excel表格文件
JS 最简单的XML格式Excel表格文件
98 0
|
1月前
|
JavaScript 小程序 前端开发
js获取当前日期,格式为YYYY-MM-DD
js获取当前日期,格式为YYYY-MM-DD
151 0
js获取当前日期,格式为YYYY-MM-DD
|
JavaScript 前端开发
【JS】获取当前时间,且格式为yyyy-MM-dd hh:mm:ss
【JS】获取当前时间,且格式为yyyy-MM-dd hh:mm:ss
161 0