通过js和正则表达式达到对有效ip的验证

今天再来逗比一会,其实这个帖子不能说是原创吧,但也不能说是抄袭!为什么呢?因为早就说过了我是一个有情怀的人,我是一个有节操的人,我更是一个尊重创作的人。哈哈哈,瞬间有木有一种飘飘然的感觉?呵呵,不扯了,说点正经的,哦忘了说本篇博客的参考地址了,它是(http://my.oschina.net/u/220260/blog/315359)。对于一个做前段的或是全栈式工程师来说,做一些客户端数据有效验证的东西是少不了的。通常有电话号码的验证、邮件的验证、身份证的验证等等。验证无非就是通过正则表达式了。有一些正则表达式写起来比较容易,for examp 非字符串的验证,邮箱的验证等,但有些就比较麻烦了,比如今天要说的有效ip的验证,这可不是一般的难,那是相当的难,这很难,难于上青天!当然是吹了,真要是那么难,你说我怎么能够会呢?哈哈。来边聊边说。自己也在网上搜索了一下,大难很多,不知道是否正确,反正都挺复杂的。今天看到一个帖子,顺便又在网上查了查,最终经过自己的细嚼慢咽,肠胃消化,产生出了这么香喷喷的一坨啊!说点有点恶心,来附代码:

<script language=javascript>
function check(ipaddr)
{
// 获取name属性为“iP”的标签的b=value属性的值
var ipaddr=document.all.ip.value;
// 正则表达式的作用是要求输入被“.”隔开的四组数,每组只能有三位
var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
// 验证ipaddr是否符合正则表达式
if (re.test(ipaddr))
{
//把ipaddr以"."隔开的四组数提取为一个数组
var parts = ipaddr.split(".");
//首先第一组及ip的第一段数不能为零,否则报错误
if (parseInt(parseFloat(parts[0])) == 0)
{
alert("错误");
return false;
}
// 同样第三段也不能为零,否则也报错误
if (parseInt(parseFloat(parts[3])) == 0)
{
alert("错误");
return false;
}
// 切这是个数都不能大于254,否则报错
for (var i=0; i<parts.length; i++)
{
if (parseInt(parseFloat(parts[i])) > 254)
{
alert("错误");
return false;
}
}
alert("正确");
return true;
} else
{
alert("错误");
return false;
}
}
</script>
<form name="all" type="post" action="">
<input type="text" name="ip">
<input type="button" value="tijiao" onclick="javascript:check()">
</form>

以上就是传说中的部分核心代码,还是那句话,如果过哪位大神在看的过程当中,发现问题,发现错误的话,请你在满嘴白牙喷的同时不妨把你的所想说出来,也好让大家看看,然后喷你啊!哈哈哈,喷一喷,不仅有助于健康,更有助于学习哟!还有就是能够促进蛋白质的吸收哟,当然是在别人喷你的时候才会有这种效果的,至于为什么,自己想去!


你可能感兴趣的:(通过js和正则表达式达到对有效ip的验证)