js中的IP格式正则匹配校验详解~

IPV4的格式为x:y:z:w,其中{x,y,z,w}属于{0~255}的正整数;

下面是其校验的正则表达式:

  1. function isIP(ip)   
  2. {   
  3.     var re =  /^(\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])$/   
  4.     return re.test(ip);   
  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])$/   定义了一个正则表达式:

^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.--------^~代表开头,表示要么是两位数、要么是以1开头的三位数,要么以2开头的但是不能超过255的三位数
(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.---------限定了介于0~255之前的整数
(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.---------限定了介于0~255之前的整数
(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$---------$~代表以介于0~255之前的整数结尾。

\d 匹配一个字数字符,/\d/ = /[0-9]/;

{n,m} 匹配n-m次;

[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符);

\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。

第二种正则表达式:

  1. function isIP(ip)  
  2. {  
  3.     var reg = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;  
  4.     if (reg.test(ip))  
  5.     {  
  6.         ip.match(reg);  
  7.         if (RegExp.$1<=255&&RegExp.$1>=0  
  8.           &&RegExp.$2<=255&&RegExp.$2>=0  
  9.           &&RegExp.$3<=255&&RegExp.$3>=0  
  10.           &&RegExp.$4<=255&&RegExp.$4>=0)  
  11.         {  
  12.             return true;   
  13.         }else  
  14.         {  
  15.             return false;  
  16.         }  
  17.     }else  
  18.     {  
  19.         return false;  
  20.     }  
  21. }  

学习博客http://blog.csdn.net/pg_guo/article/details/8532147有感而发~~

posted @ 2015-09-14 13:34  周丁丁  阅读(6662)  评论(0编辑  收藏  举报