本文介绍如何使用 JavaScript 验证 IP 地址,重点演示如何排除以 127 开头的回送地址。通过示例代码展示基本的字符串分割判断与正则表达式匹配两种方法,帮助开发者实现准确的 IP 格式校验逻辑。
JavaScript 验证非 127 开头 IP 地址的实现方法
在 JavaScript 中验证回送地址时,需要确保 IP 地址不以 127 开头。
回送地址(127.x.x.x)通常指本机回送地址(Loopback Address)。
基础验证逻辑
var ipNotStartWith127 = function(ip) {
try {
var data = ip.split("."), ip1;
return 4 == data.length && 127 !== parseInt(data[0])
} catch (e) {
return !1
}
}
console.log(ipNotStartWith127("127.0.0.1"));
// false
console.log(ipNotStartWith127("192.168.1.1"));
// true
IP 格式验证补充
补充说明:JavaScript 判断是否为 IP 格式的方法。
正则表达式验证示例
//一
function checkIP(){
var ip = document.getElementById('cameraPort').value;
var reg=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;//正则表达式
if(reg.test(ip)){
if( RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256){
alert("IP正确!");
return true;
}else{
alert("IP有误!");
return false;
}
}
}
//二
var isIp = function (){
var regexp = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
return function(value){
var valid = regexp.test(value);
if(!valid){//首先必须是 xxx.xxx.xxx.xxx 类型的数字,如果不是,返回false
return false;
}
return value.split('.').every(function(num){
//切割开来,每个都做对比,可以为0,可以小于等于255,但是不可以0开头的俩位数
//只要有一个不符合就返回false
if(num.length > 1 && num.charAt(0) === '0'){
//大于1位的,开头都不可以是‘0'
return false;
}else if(parseInt(num , 10) > 255){
//大于255的不能通过
return false;
}
return true;
});
}
}();
var test_ip = '123.12.123.1';//一个普通的ip
alert(isIp(test_ip));//返回true
var test_ips = '123.1.1.1,127.0.0.1,192.168.1.1';//多个IP,用逗号(,)隔开
var isTrue = test_ips.split(',').every(function(ip){
return isIp(ip);//先将字符串按照逗号分成数组,在校验就可以了
});
alert(isTrue);//返回true,上面的ip全部正确
总结。
以上所述是小编给大家介绍的 js 判断非 127 开头的 IP 地址的实例代码,希望对大家有所帮助!