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