javascript的正则表达式验证ip地址

iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式

下面给出相对应的正则表达式:

  • “^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.”
  • +”(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.”
  • +”(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.”
  • +”(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$”

上面的一个不漏就是正确的验证ip的正则表达式,简单的讲解一下

\\d表示0~9的任何一个数字

{2}表示正好出现两次

[0-4]表示0~4的任何一个数字

| 的意思是或者

( )上面的括号不能少,是为了提取匹配的字符串,表达式中有几个()就表示有几个相应的匹配字符串

  • 1\\d{2}的意思就是100~199之间的任意一个数字
  • 2[0-4]\\d的意思是200~249之间的任意一个数字
  • 25[0-5]的意思是250~255之间的任意一个数字
  • [1-9]\\d的意思是10~99之间的任意一个数字
  • [1-9])的意思是1~9之间的任意一个数字
  • \\.的意思是.点要转义(特殊字符类似,@都要加\\转义)

下面是另外一种写法

正则表达式:

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

红色块代表:第一个字符是2,第二个字符是0到4,第三个字符是任意一位数字。表示200~249。

绿色块代表:第一个字符是2,第二个字符是5,第三个字符是0到5。表示250~255。

蓝色块代表:第一个字符是0,或者1,或者可以没有这个字符,第二个字符是任意一位数字,第三个字符是任意一位数字,可以没有这个字符。表示1~199,可以有前导零。

“|”代表“或者”的意思,只要满足三块中的任意一块的意思。

前后的“(”和“)”代表这是一组

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

{3}代表重复三次。比如“255.255.255.”。

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

最后这一组的意思同上,就是在“.”后面加上相同的检测。

下面是另一个正则验证的函数写法;

function isValidIP(ip) {
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])\.(\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])$/
return reg.test(ip);
}

下面这是在一个网上拔下来的,供参考;

function checkIP() {
var ipArray,ip,j;
ip = document.ipform.ip.value;

if(/[A-Za-z_-]/.test(ip)){
if (ip.indexOf(" ")>=0){
ip = ip.replace(/ /g,"");
document.ipform.ip.value = ip;
}
if (ip.toLowerCase().indexOf("http://")==0){
ip = ip.slice(7);
document.ipform.ip.value = ip;
}
if(!/^([\w-]+\.)+((com)|(net)|(org)|(gov\.cn)|(info)|(cc)|(com\.cn)|(net\.cn)|(org\.cn)|(name)|(biz)|(tv)|(cn)|(mobi)|(name)|(sh)|(ac)|(io)|(tw)|(com\.tw)|(hk)|(com\.hk)|(ws)|(travel)|(us)|(tm)|(la)|(me\.uk)|(org\.uk)|(ltd\.uk)|(plc\.uk)|(in)|(eu)|(it)|(jp))$/.test(ip)){
alert("不是正确的域名");
document.ipform.ip.focus();
return false;
}
}
else{
ipArray = ip.split(".");
j = ipArray.length
if(j!=4)
{
alert("不是正确的IP");
document.ipform.ip.focus();
return false;
}

for(var i=0;i<4;i++)
{
if(ipArray[i].length==0 || ipArray[i]>255)
{
alert("不是正确的IP");
document.ipform.ip.focus();
return false;
}
}
}
}

~~

未经允许不得转载:WEB前端开发 » javascript的正则表达式验证ip地址

赞 (0)