try this page<html>
<head>
<script language="JavaScript">
<!--
function validIp(ipstr)
{
var IpPat=new RegExp("^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$");
var IPArray=ipstr.match(IpPat);
if (IPArray!=null)
{ // this is an IP address
for (var i=1;i<=4;i++)
{
if (IPArray[i]>255)
{
alert(" IP address is invalid!(large than 255)");
return false;
}
}
}else{
alert("IP address is invalid!(format error)");
return false;
}}
// -->
</script>
</head><body>
<form name=emailform onSubmit="return validIp(this.ipaddr.value);">
Your IP Address: <input type=text name="ipaddr"><br/> <input type=submit value="Submit">
</form>
</body>
</html>
<head>
<script language="JavaScript">
<!--
function validIp(ipstr)
{
var IpPat=new RegExp("^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$");
var IPArray=ipstr.match(IpPat);
if (IPArray!=null)
{ // this is an IP address
for (var i=1;i<=4;i++)
{
if (IPArray[i]>255)
{
alert(" IP address is invalid!(large than 255)");
return false;
}
}
}else{
alert("IP address is invalid!(format error)");
return false;
}}
// -->
</script>
</head><body>
<form name=emailform onSubmit="return validIp(this.ipaddr.value);">
Your IP Address: <input type=text name="ipaddr"><br/> <input type=submit value="Submit">
</form>
</body>
</html>
//检测ip地址
function isIPAddress()
{
if(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.test(document.RegExpDemo.txtIP.value)==false)
{
window.alert('错误的IP地址格式');
return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
window.alert('错误的IP地址');
return;
}
window.alert(document.RegExpDemo.txtIP.value);
}象 10.00.00.20 可以通过验证,但是我想显示的是 10.0.0.20 这个地址~
我是想
数字在1-254 的范围内
010 转换成 10
000 转换成 0
100 转换成 100
的正则表达式
你的东西,我测试出来了,你看看 s=document.Form1.txt.value;
var ss= ("000"+ s).substr(("000"+s).length-3);
alert(ss);
给分吗? 呵呵
parseInt("000", 10);
parseInt("010", 10);
parseInt("100", 10);
<!--
function IP(str)
{
var reg = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
if (!reg.test(str))
{
alert('错误的IP地址格式');
return false;
}
var a = str.match(reg);
if(!(a[0]==parseInt(a[0]) && a[2]==parseInt(a[2]) && a[4]==parseInt(a[4]) && a[6]==parseInt(a[6])))
{
alert('错误的IP地址格式, 有零!!');
return false;
}
if(a[0]<1||a[0]>255||a[2]<1||a[2]>255||a[4]<1||a[4]>255||a[6]<1||a[6]>255)
{
alert('错误的IP地址');
return false;
}
return true;
}
IP("10.020.020.2");
IP("10.20.20.2");
//-->
</SCRIPT>
如下str=document.RegExpDemo.txtIP.value;
if(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.test(str)==false)
{
window.alert('错误的IP地址格式');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
window.alert('错误的IP地址');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
//剔除 如 010.020.020.03 前面 的0
var str=str.replace(/0(\d)/g,"$1");
str=str.replace(/0(\d)/g,"$1");
window.alert(str);
我是指
var str=str.replace(/0(\d)/g,"$1");
str=str.replace(/0(\d)/g,"$1"); 这两句如果只用str.replace(/0(\d)/g,"$1"); 的话 象 02 , 03 可以显示成 2. 3
但是 002 003 只能显示出 02. 03 这样的
不知道正则表达式能不能重复匹配 感觉就象 递归 一样