转:关于IP验证的一个例子 shangdidewusheng(原作)
平时感觉Windows的IP输入框很好用,如果再网页中也能实现一定是很爽的事情。核心代码如下:<script language="javascript">
function outStr(){
if(document.all.ip1.value>0 && document.all.ip2.value>0 && document.all.ip3.value>0 && document.all.ip4.value>0){
alert("你输入的IP地址为:" + document.all.ip1.value + "." + document.all.ip2.value + "." + document.all.ip3.value + "." + document.all.ip4.value);
}//end if
}//end
function moveRight(obj){
id = parseInt(obj.name.substr(2,1))
if(id<4){
eval("document.all.ip" + (id +1) + ".focus()");
}else{
outStr();
}//end if
}
function moveLeft(obj){
id = parseInt(obj.name.substr(2,1))
if(id>1){
eval("document.all.ip" + (id -1) + ".focus()");
}//end if
}//end if
function Keypress(obj){
var objInput = obj;
cod = window.event.keyCode;
if(cod==46 && (obj.value).length>0){//如果按了“.”并且有了一个字符,向右移动一次
window.event.keyCode=0;
moveRight(obj);
}else if((obj.value).length==2 && (cod >= 48) && (cod <= 57)){//如果数字键并且够了两位
if(cod<58){//
obj.value = obj.value * 10 + cod - 48;
}//end if
window.event.keyCode = 0;
moveRight(obj);
}else{ //判断输入的是不是数字
if ( !(((cod >= 48) && (cod <= 57)) || (cod == 13) || (cod == 37) || (cod == 39))){
window.event.keyCode = 0;
}//end if
}//end if
}//end function keydown
function getCaretPos(obj){
var currentRange=document.selection.createRange();
var workRange=currentRange.duplicate();
obj.select();
var allRange=document.selection.createRange();
var len=0;
while(workRange.compareEndPoints("StartToStart",allRange)>0){
workRange.moveStart("character",-1);
len++;
}
currentRange.select();
return len;
}//end
function KeyDown(obj){
cod = window.event.keyCode;
i = getCaretPos(obj); //光标位置
n = obj.value.length; //字符长度
if(cod==37 && i==0){//光标左移
moveLeft(obj);
}else if(cod==39 && i>=n){
moveRight(obj);
}else if(cod==8 && (obj.value=="" || i==0)){
moveLeft(obj);
}//end if
}//end
function checkDate(obj,max_num){
if(obj.value>max_num || obj.value<0){
window.event.keyCode = 0;
alert(obj.value + "是无效的项目,只能输入0到" + max_num + "之间的数。");
obj.value = max_num;
obj.focus();
obj.select();
}//end if
}//end
</script>测试网址:http://www.yemaweb.com/test/ipv1.0.htm
平时感觉Windows的IP输入框很好用,如果再网页中也能实现一定是很爽的事情。核心代码如下:<script language="javascript">
function outStr(){
if(document.all.ip1.value>0 && document.all.ip2.value>0 && document.all.ip3.value>0 && document.all.ip4.value>0){
alert("你输入的IP地址为:" + document.all.ip1.value + "." + document.all.ip2.value + "." + document.all.ip3.value + "." + document.all.ip4.value);
}//end if
}//end
function moveRight(obj){
id = parseInt(obj.name.substr(2,1))
if(id<4){
eval("document.all.ip" + (id +1) + ".focus()");
}else{
outStr();
}//end if
}
function moveLeft(obj){
id = parseInt(obj.name.substr(2,1))
if(id>1){
eval("document.all.ip" + (id -1) + ".focus()");
}//end if
}//end if
function Keypress(obj){
var objInput = obj;
cod = window.event.keyCode;
if(cod==46 && (obj.value).length>0){//如果按了“.”并且有了一个字符,向右移动一次
window.event.keyCode=0;
moveRight(obj);
}else if((obj.value).length==2 && (cod >= 48) && (cod <= 57)){//如果数字键并且够了两位
if(cod<58){//
obj.value = obj.value * 10 + cod - 48;
}//end if
window.event.keyCode = 0;
moveRight(obj);
}else{ //判断输入的是不是数字
if ( !(((cod >= 48) && (cod <= 57)) || (cod == 13) || (cod == 37) || (cod == 39))){
window.event.keyCode = 0;
}//end if
}//end if
}//end function keydown
function getCaretPos(obj){
var currentRange=document.selection.createRange();
var workRange=currentRange.duplicate();
obj.select();
var allRange=document.selection.createRange();
var len=0;
while(workRange.compareEndPoints("StartToStart",allRange)>0){
workRange.moveStart("character",-1);
len++;
}
currentRange.select();
return len;
}//end
function KeyDown(obj){
cod = window.event.keyCode;
i = getCaretPos(obj); //光标位置
n = obj.value.length; //字符长度
if(cod==37 && i==0){//光标左移
moveLeft(obj);
}else if(cod==39 && i>=n){
moveRight(obj);
}else if(cod==8 && (obj.value=="" || i==0)){
moveLeft(obj);
}//end if
}//end
function checkDate(obj,max_num){
if(obj.value>max_num || obj.value<0){
window.event.keyCode = 0;
alert(obj.value + "是无效的项目,只能输入0到" + max_num + "之间的数。");
obj.value = max_num;
obj.focus();
obj.select();
}//end if
}//end
</script>测试网址:http://www.yemaweb.com/test/ipv1.0.htm
sub chkIP(boardid)
dim rsIP
dim ipArr
dim ignored
dim i
dim ip
dim sql ip=Request.ServerVariables("REMOTE_ADDR")
ignored=false
if not isempty(boardid) then
sql="select ignoreip from board where boardid="&cstr(boardid)
set rsIP=conn.execute(sql)
if not (rsIP.eof and rsIP.bof) then
if instr(cstr(rsIP("ignoreip")&""),chr(13)&chr(10)) then
iparr=split(rsIP("ignoreip"),chr(13)&chr(10))
for i=0 to ubound(iparr)
if trim(iparr(i))<>"" and left(ip,len(trim(iparr(i))))=trim(iparr(i)) then
ignored=true
exit for
end if
next
else
iparr=rsIP("ignoreip")
if ip=trim(iparr) then
ignored=true
end if
end if
end if
rsIP.close
end if
if ignored then
response.write "<script language=javascript>window.location.href='ignoreip.htm'</script>"
end if
end sub
%>
{
var exp=/^(\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])$/;
var reg = sIPAddress.match(exp);
var ErrMsg="你输入的是一个非法的IP地址段!\nIP段为::xxx.xxx.xxx.xxx(xxx为0-255)!"
var Msg="你输入的是一个合法的IP地址段!"
if(reg==null)
{
alert(ErrMsg);
}
else
{
alert(reg);
}
}