diff --git a/src/common/ValidationUtil.ts b/src/common/ValidationUtil.ts new file mode 100644 index 0000000..4e1a7b5 --- /dev/null +++ b/src/common/ValidationUtil.ts @@ -0,0 +1,59 @@ +export default class ValidationUtil { + static isIpAddress(str: string): boolean { + return ( + str == "localhost" || + /^([1-9]|[1-9][0-9]|1\d\d|2[0-2][0-3])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-4])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-4])\.([1-9]|[1-9][0-9]|1\d\d|2[0-4]\d|25[0-4])$/.test( + str + ) + ); + } + + static isHost(str: string): boolean { + return ( + str == "localhost" || + /^([1-9]|[1-9][0-9]|1\d\d|2[0-2][0-3])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-4])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-4])\.([1-9]|[1-9][0-9]|1\d\d|2[0-4]\d|25[0-4])$/.test( + str + ) || + /^([1-9]|[1-9][0-9]|1\d\d|2[0-2][0-3])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-4])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-4])\.([1-9]|[1-9][0-9]|1\d\d|2[0-4]\d|25[0-4])\:([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])$/.test( + str + ) + ); + } + + static isMacAddress(str: string): boolean { + return /([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}/.test(str); + } + + static isMaskAddress(str: string): boolean { + return /^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/.test( + str + ); + } + + static isHexStr(str: string): boolean { + if (str != null && str != undefined && typeof str == "string") { + str = str.trim(); + if (str.length == 0) { + return true; + } + for (const item of str.split(" ")) { + if (item.length > 4) { + return false; + } + if (!/^0[xX][A-Fa-f0-9]{1,2}/.test(item)) { + return false; + } + } + return true; + } + return false; + } + + static isResolution(str: string): boolean { + return /([0-9]{1,5})[x|X]([0-9]{1,5}@[0-9]{1,3}$)/.test(str); + } + + static isEnglishOrNum(str: string): boolean { + return /^[0-9a-zA-Z_\-]+$/.test(str); + } +} diff --git a/src/components/AdvancedIpAddressDialog.vue b/src/components/AdvancedIpAddressDialog.vue index 6664c8a..6b1abec 100644 --- a/src/components/AdvancedIpAddressDialog.vue +++ b/src/components/AdvancedIpAddressDialog.vue @@ -88,7 +88,8 @@ (val) => (val && val.length > 0) || $t('Please type something'), (val) => - isIpAddress(val) || $t('Please input vaild ip address'), + isMaskAddress(val) || + $t('Please input vaild netmask address'), ]" lazy-rules /> @@ -162,12 +163,12 @@ + + + + +