Jquery+原生JavaScript验证IP地址是否合法
本文展示了一个利用正则表达式对IP地址进行判空和格式检查的JS函数,适用于各式包含IP地址并需要对其进行验证的前端提交表单。同样也适用于检测子网掩码或默认网关是否合法。
function ValidIP(item) {
var str = item.val(); // item:jquery控件对象对象,可在使用此函数时传入 $("<控件标识>") 进行使用
var name = item.attr("name"); // 获取控件的name属性,用以抛出未捕获异常
var flag; // 验证ip地址是否合法的标志变量
let voidChar = /^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$/g; // 验证ip地址的正则表达式
if (str !== null && str !== "") {
if (!voidChar.test(str)) { // 测试ip地址字符串是否合法
flag = true;
} else {
flag = false;
}
} else {
alert("You must enter an valid IP address!"); // ip地址字符串为空
throw new Error("Required items: IP address (" + name + ")!"); // 原生js抛出自定义异常的方法,抛出异常后,程序将中断执行,保证表单不被提交
}
if (flag) {
alert("Invalid IP address format"); // ip地址不合法
throw new Error("Invalid IP address format(" + name + ")");
}
}