Files
wireguard-ui/src/utils/validate-ipv4-cidr.ts
T
2026-09-20 07:27:29 +01:00

34 lines
608 B
TypeScript

import validateIpv4 from "./validate-ipv4";
type Params = {
value?: string;
};
export default function validateIpv4Cidr({ value }: Params) {
if (!value) {
return false;
}
const [ip, prefix, extra] = value.split("/");
if (extra) {
return false;
}
if (!validateIpv4({ ip })) {
return false;
}
if (prefix == undefined) {
return true;
}
if (!/^\d{1,2}$/.test(prefix)) {
return false;
}
const prefix_value = Number(prefix);
return prefix_value >= 0 && prefix_value <= 32 && String(prefix_value) == prefix;
}