移動瀏覽器中分四個Input控件仿製的IP地址輸入控件,以及端口檢查

在部分國外主流移動瀏覽中在觸屏不支持鍵盤代碼,返回都是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);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章