移动浏览器中分四个Input控件仿制的IP地址输入控件,以及端口检查

本文介绍了如何在移动浏览器中使用四个连续的Input控件模拟IP地址输入,并通过JavaScript和jQuery实现IP地址的有效性检查。同时,还提供了一个端口检查函数,确保输入的端口号在1到65535之间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在部分国外主流移动浏览中在触屏不支持键盘代码,返回都是0,所在暂时采用这种复杂间接的方式实现,IP控件分4个连续的input输入标签组成的模式,检查代码如下:

//分段检测IP地址有效性

//isFirst 表示是否是第一个,第一个特殊处理下
function onCheckIpAddress(obj, nextObj, isFirst) {
    var exp = /(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])/;
    var ip = $(obj).val().trim();
    var reg = null;
    var dotreg = null;
    if (ip.length == 1) {
        reg = ip.match(/\d/);
        if (reg == null) {
            $(obj).val("");
        }
    } else if (ip.length == 2) {
        reg = ip.match(/\d\d/);
        dotreg = ip.match(/\d\./);
        if (dotreg != null) {
            if (isFirst && parseInt(ip.substring(0, 1)) == 0) {
                $(obj).val("255");
                $(obj).select();
            } else {
                $(obj).val(ip.substring(0, 1));
                $("#" + nextObj).focus();
                $("#" + nextObj).select();
            }
        } else if (reg == null) {
            $(obj).val("");
        }
    } else if (ip.length == 3) {
        reg = ip.match(/([0-1]\d\d|2[0-4]\d|25[0-5])/);
        dotreg = ip.match(/\d\d\./);
        if (dotreg != null) {
            if (isFirst && parseInt(ip.substring(0, 2)) == 0) {
                $(obj).val("255");
                $(obj).select();
            } else {
                $(obj).val(ip.substring(0, 2));
                $("#" + nextObj).focus();
                $("#" + nextObj).select();
            }
        } else if (ip.match(/[^0-9]/) != null) {
            $(obj).val("");
        }
    } else if (ip.length > 3) {
        $(obj).val("255");
    }
    if (reg == null) {
        if (ip > 255) {
            $(obj).val("255");
            $(obj).select();
        }
    } else if (ip.length == 3) {
        if (isFirst && parseInt(ip) == 0) {
            $(obj).val("255");
            $(obj).select();
        } else {
            $("#" + nextObj).focus();
            $("#" + nextObj).select();
        }
    }
}

//检测端口号,1~65535

function onCheckPort(obj) {
    var port = $(obj).val().trim();
    var reg = null;
    reg = port.match(/[^0-9]/);
    if (reg != null) {
        $(obj).val(tempPort);
    } else if (parseInt(port) > 65535 || parseInt(port) < 0) {
        $(obj).val(65535);
        $(obj).select();
    }
    tempPort = $(obj).val().trim();
}

//好像是检查浮点型,忘了

function onCheckFloat(obj, name) {
    var floatNum = $(obj).val();
    var tempName = eval("temp" + name);
    var tempWord = "temp" + name;
    var reg1 = null;
    var reg2 = null;
    var reg3 = null;
    reg1 = floatNum.match(/^(-|[0-9])/);
    reg2 = floatNum.match(/^(-?)\d+(\.)?$/);
    reg3 = floatNum.match(/^(-?)\d+(\.\d+)?$/);
    if (floatNum.length == 1 && reg1 != null) {
        eval("" + tempWord + "=\"" + floatNum + "\"");
    } else if (floatNum.length == 1 && reg1 == null) {
        $(obj).val("");
    } else if (floatNum.length > 1 && (reg2 != null || reg3 != null) && floatNum.length <= 256) {
        eval("" + tempWord + "=\"" + floatNum + "\"");
    } else if (floatNum != "") {
        $(obj).val(tempName);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值