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,如需转载请自行联系原作者

相关文章
|
8月前
|
JavaScript 前端开发
JS将两个数组和合并成数组包对象格式的方法
JS将两个数组和合并成数组包对象格式的方法
109 0
|
8月前
|
前端开发 JavaScript Java
JavaScript复制内容到剪切板 带格式的复制
JavaScript复制内容到剪切板 带格式的复制
120 0
|
8月前
|
JSON JavaScript 数据格式
Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
|
8月前
|
JSON JavaScript 数据格式
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
235 0
|
2月前
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
2月前
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
52 1
|
4月前
|
XML JSON JavaScript
js的json格式
js的json格式
|
3月前
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
52 0
|
4月前
|
SQL 安全 数据库
用html+javascript打造公文一键排版系统2:显示源码/显示预览、清除格式
用html+javascript打造公文一键排版系统2:显示源码/显示预览、清除格式
|
5月前
|
JavaScript
将jq转为原生js格式
将jq转为原生js格式
43 2