// 端口号区间校验
export const validatePortRange = (ports): any => {
return new Promise<void>((resolve, reject) => {
if (!ports) reject("请输入");
// 用逗号分隔多个端口组
const portGroups = ports.split(',');
for (let group of portGroups) {
// 用 - 号分隔端口区间
const range = group.split('-');
if (range.length === 1) {
// 如果只有一个端口,则直接校验该端口是否在合法范围内
const port = parseInt(range[0]);
if (isNaN(port) || port < 1 || port > 65520) {
reject('端口不在合法范围');;
}
} else if (range.length === 2) {
// 如果是一个端口区间,则校验区间内的端口是否在合法范围内
const startPort = parseInt(range[0]);
const endPort = parseInt(range[1]);
if (isNaN(startPort) || isNaN(endPort) || startPort < 1 || endPort > 65520 || startPort >= endPort) {
reject("端口区间不在合法范围");
}
} else {
// 如果格式不正确,则返回false
reject("端口格式不正确");;
}
}
resolve()
})
}