function ipTest(str) {
|
let result = {
|
code: 0,
|
msg: "",
|
};
|
let list = str.split(",");
|
if(list.length == 0) {
|
result.code = 0;
|
result.msg = "IP白名单不能为空!";
|
}else {
|
let code = list.every(value=>{
|
if(value == "*") {
|
return true;
|
}
|
let regexp = /^\d{1,3}\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)$/;
|
let valid = regexp.test(value);
|
|
if(!valid){
|
//首先必须是 xxx.xxx.xxx.xxx 类型的数字,如果不是,返回false
|
result.msg = "必须是 xxx.xxx.xxx.xxx 类型的数字";
|
return false;
|
}
|
return value.split('.').every(function(num){
|
//切割开来,每个都做对比,可以为0,可以小于等于255,但是不可以0开头的俩位数
|
//只要有一个不符合就返回false
|
if(num.length > 1 && num.charAt(0) === '0'){
|
//大于1位的,开头都不可以是‘0’
|
result.msg = "大于1位的,开头都不可以是‘0’";
|
return false;
|
}else if(parseInt(num , 10) > 255){
|
//大于255的不能通过
|
result.msg = "大于255的不能通过";
|
return false;
|
}
|
return true;
|
});
|
});
|
result.code = code?1:0;
|
}
|
return result;
|
}
|
export default ipTest;
|