mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-03-17 03:04:46 +08:00
fix: 增加 ip 或 域名正则校验
This commit is contained in:
parent
be5a7c99e1
commit
1111b6b494
@ -15,6 +15,21 @@ const checkIp = (rule: any, value: any, callback: any) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const checkHost = (rule: any, value: any, callback: any) => {
|
||||||
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
||||||
|
callback(new Error(i18n.global.t('commons.rule.requiredInput')));
|
||||||
|
} else {
|
||||||
|
const regIP =
|
||||||
|
/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
|
||||||
|
const regHost = /^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;
|
||||||
|
if (!regIP.test(value) && !regHost.test(value)) {
|
||||||
|
callback(new Error(i18n.global.t('commons.rule.host')));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const complexityPassword = (rule: any, value: any, callback: any) => {
|
const complexityPassword = (rule: any, value: any, callback: any) => {
|
||||||
if (value === '' || typeof value === 'undefined' || value == null) {
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
||||||
callback(new Error(i18n.global.t('commons.rule.complexityPassword')));
|
callback(new Error(i18n.global.t('commons.rule.complexityPassword')));
|
||||||
@ -265,6 +280,7 @@ interface CommonRule {
|
|||||||
number: FormItemRule;
|
number: FormItemRule;
|
||||||
integerNumber: FormItemRule;
|
integerNumber: FormItemRule;
|
||||||
ip: FormItemRule;
|
ip: FormItemRule;
|
||||||
|
host: FormItemRule;
|
||||||
port: FormItemRule;
|
port: FormItemRule;
|
||||||
domain: FormItemRule;
|
domain: FormItemRule;
|
||||||
databaseName: FormItemRule;
|
databaseName: FormItemRule;
|
||||||
@ -363,6 +379,11 @@ export const Rules: CommonRule = {
|
|||||||
required: true,
|
required: true,
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
},
|
},
|
||||||
|
host: {
|
||||||
|
validator: checkHost,
|
||||||
|
required: true,
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
port: {
|
port: {
|
||||||
required: true,
|
required: true,
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
|
@ -140,6 +140,7 @@ export default {
|
|||||||
number: 'Please enter the correct number',
|
number: 'Please enter the correct number',
|
||||||
integer: 'Please enter the correct positive integer',
|
integer: 'Please enter the correct positive integer',
|
||||||
ip: 'Please enter the correct IP address',
|
ip: 'Please enter the correct IP address',
|
||||||
|
host: 'Enter the correct IP address or domain name',
|
||||||
port: 'Please enter the correct port',
|
port: 'Please enter the correct port',
|
||||||
selectHelper: 'Please select the correct {0} file',
|
selectHelper: 'Please select the correct {0} file',
|
||||||
domain: 'domain name format error',
|
domain: 'domain name format error',
|
||||||
|
@ -144,6 +144,7 @@ export default {
|
|||||||
number: '请输入正确的数字',
|
number: '请输入正确的数字',
|
||||||
integer: '请输入正确的正整数',
|
integer: '请输入正确的正整数',
|
||||||
ip: '请输入正确的 IP 地址',
|
ip: '请输入正确的 IP 地址',
|
||||||
|
host: '请输入正确的 IP 或者域名',
|
||||||
port: '请输入正确的端口,1-65535',
|
port: '请输入正确的端口,1-65535',
|
||||||
selectHelper: '请选择正确的 {0} 文件',
|
selectHelper: '请选择正确的 {0} 文件',
|
||||||
domain: '域名格式错误',
|
domain: '域名格式错误',
|
||||||
|
@ -109,7 +109,7 @@ type FormInstance = InstanceType<typeof ElForm>;
|
|||||||
const hostInfoRef = ref<FormInstance>();
|
const hostInfoRef = ref<FormInstance>();
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
groupID: [Rules.requiredSelect],
|
groupID: [Rules.requiredSelect],
|
||||||
addr: [Rules.requiredInput],
|
addr: [Rules.host],
|
||||||
port: [Rules.requiredInput, Rules.port],
|
port: [Rules.requiredInput, Rules.port],
|
||||||
user: [Rules.requiredInput],
|
user: [Rules.requiredInput],
|
||||||
authMode: [Rules.requiredSelect],
|
authMode: [Rules.requiredSelect],
|
||||||
|
@ -95,7 +95,7 @@ let hostInfo = reactive<Host.HostOperate>({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
addr: [Rules.ip],
|
addr: [Rules.host],
|
||||||
port: [Rules.requiredInput, Rules.port],
|
port: [Rules.requiredInput, Rules.port],
|
||||||
user: [Rules.requiredInput],
|
user: [Rules.requiredInput],
|
||||||
authMode: [Rules.requiredSelect],
|
authMode: [Rules.requiredSelect],
|
||||||
|
@ -93,7 +93,7 @@
|
|||||||
<span v-if="errBuckets" class="input-error">{{ $t('commons.rule.requiredSelect') }}</span>
|
<span v-if="errBuckets" class="input-error">{{ $t('commons.rule.requiredSelect') }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div v-if="dialogData.rowData!.type === 'SFTP'">
|
<div v-if="dialogData.rowData!.type === 'SFTP'">
|
||||||
<el-form-item :label="$t('setting.address')" prop="varsJson.address" :rules="Rules.ip">
|
<el-form-item :label="$t('setting.address')" prop="varsJson.address" :rules="Rules.host">
|
||||||
<el-input v-model.trim="dialogData.rowData!.varsJson['address']" />
|
<el-input v-model.trim="dialogData.rowData!.varsJson['address']" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('setting.port')" prop="varsJson.port" :rules="[Rules.port]">
|
<el-form-item :label="$t('setting.port')" prop="varsJson.port" :rules="[Rules.port]">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user