mirror of
https://github.com/ntop/ntopng.git
synced 2026-05-03 09:20:10 +00:00
42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
import NtopUtils from "./ntop-utils.js";
|
|
|
|
const Utils = NtopUtils;
|
|
function get_data_pattern(type) {
|
|
if (type == "text") {
|
|
return `.*`;
|
|
} else if (type == "vlan") {
|
|
let vlan = String.raw`@(([1-9])|([1-9][0-9]{1,2})|([1-3][0-9]{3})|(40[0-8][0-9])|(409[0-5]))`;
|
|
return vlan;
|
|
} else if (type == "ip" || type == "cidr") {
|
|
let vlan = get_data_pattern("vlan");
|
|
let r_ipv4 = Utils.REGEXES.ipv4;
|
|
let r_ipv4_vlan = r_ipv4.replaceAll("$", `${vlan}$`);
|
|
let r_ipv6 = Utils.REGEXES.ipv6;
|
|
let r_ipv6_vlan = r_ipv6.replaceAll("$", `${vlan}$`);
|
|
if (type == "cidr") {
|
|
let network_ipv4 = String.raw`(\/(([1-9])|([1-2][0-9])|(3[0-2])))`;
|
|
let ipv4_cidr = r_ipv4.replaceAll("$", `${network_ipv4}$`);
|
|
let ipv4_cidr_vlan = r_ipv4.replaceAll("$", `${network_ipv4}${vlan}$`);
|
|
let network_ipv6 = String.raw`(\/(([1-9])|([1-9][0-9])|(1[0-1][0-9])|(12[0-8])))`;
|
|
let ipv6_cidr = r_ipv6.replaceAll("$", `${network_ipv6}$`);
|
|
let ipv6_cidr_vlan = r_ipv6.replaceAll("$", `${network_ipv6}${vlan}$`);
|
|
return `(${ipv4_cidr}|${ipv4_cidr_vlan}|${ipv6_cidr}|${ipv6_cidr_vlan})`;
|
|
}
|
|
return `(${r_ipv4})|(${r_ipv4_vlan})|(${r_ipv6})|(${r_ipv6_vlan})`;
|
|
} else if (type == "mac") {
|
|
return Utils.REGEXES["macAddress"];
|
|
} else if (type == "ip,cidr") {
|
|
let ip = get_data_pattern("ip");
|
|
let cidr = get_data_pattern("cidr");
|
|
return `(${ip})|(${cidr})`;
|
|
}
|
|
return Utils.REGEXES[type];
|
|
}
|
|
|
|
const regexValidation = function() {
|
|
return {
|
|
get_data_pattern,
|
|
};
|
|
}();
|
|
|
|
export default regexValidation;
|