fix: 参数配置值类型为字符串http判断
This commit is contained in:
@@ -28,7 +28,8 @@ export const regExpUserName = /^[a-zA-Z][a-z0-9A-Z]{4,}$/;
|
|||||||
*
|
*
|
||||||
* 密码至少包含大小写字母、数字、特殊符号,且不少于6位
|
* 密码至少包含大小写字母、数字、特殊符号,且不少于6位
|
||||||
*/
|
*/
|
||||||
export const regExpPasswd = /^(?![A-Za-z0-9]+$)(?![a-z0-9\W]+$)(?![A-Za-z\W]+$)(?![A-Z0-9\W]+$)[a-zA-Z0-9\W]{6,}$/;
|
export const regExpPasswd =
|
||||||
|
/^(?![A-Za-z0-9]+$)(?![a-z0-9\W]+$)(?![A-Za-z\W]+$)(?![A-Z0-9\W]+$)[a-zA-Z0-9\W]{6,}$/;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 有效手机号格式
|
* 有效手机号格式
|
||||||
@@ -63,6 +64,44 @@ export function validHttp(link: string): boolean {
|
|||||||
return regExpHttp.test(link);
|
return regExpHttp.test(link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断是否有效URL地址
|
||||||
|
* @param str 网络链接
|
||||||
|
* @returns true | false
|
||||||
|
*/
|
||||||
|
export function validURL(str: string) {
|
||||||
|
if (
|
||||||
|
str === '' ||
|
||||||
|
str.length >= 2083 ||
|
||||||
|
str.length <= 3 ||
|
||||||
|
str.startsWith('.')
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
let strTemp = str;
|
||||||
|
if (str.includes(':') && !str.includes('://')) {
|
||||||
|
// support no indicated urlscheme but with colon for port number
|
||||||
|
// http:// is appended so url.Parse will succeed, strTemp used so it does not impact rxURL.MatchString
|
||||||
|
strTemp = 'http://' + str;
|
||||||
|
}
|
||||||
|
debugger;
|
||||||
|
try {
|
||||||
|
new URL(strTemp);
|
||||||
|
} catch (error) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const u = new URL(strTemp);
|
||||||
|
if (u.host.startsWith('.')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (u.host === '' && u.pathname !== '' && !u.pathname.includes('.')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 正则表达式模式(rxURL)未提供,无法进行具体判断
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是否为有效手机号格式
|
* 判断是否为有效手机号格式
|
||||||
* @param mobile 手机号字符串
|
* @param mobile 手机号字符串
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import {
|
|||||||
addParamConfigInfo,
|
addParamConfigInfo,
|
||||||
} from '@/api/configManage/configParam';
|
} from '@/api/configManage/configParam';
|
||||||
import useNeInfoStore from '@/store/modules/neinfo';
|
import useNeInfoStore from '@/store/modules/neinfo';
|
||||||
import { regExpIPv4, regExpIPv6 } from '@/utils/regular-utils';
|
import { regExpIPv4, regExpIPv6, validURL } from '@/utils/regular-utils';
|
||||||
import { SizeType } from 'ant-design-vue/lib/config-provider';
|
import { SizeType } from 'ant-design-vue/lib/config-provider';
|
||||||
import { DataNode } from 'ant-design-vue/lib/tree';
|
import { DataNode } from 'ant-design-vue/lib/tree';
|
||||||
const neInfoStore = useNeInfoStore();
|
const neInfoStore = useNeInfoStore();
|
||||||
@@ -933,7 +933,6 @@ function ruleVerification(row: Record<string, any>): (string | boolean)[] {
|
|||||||
if (row.optional === 'true' && !value) {
|
if (row.optional === 'true' && !value) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'int':
|
case 'int':
|
||||||
if (filter && filter.indexOf('~') !== -1) {
|
if (filter && filter.indexOf('~') !== -1) {
|
||||||
@@ -1003,6 +1002,7 @@ function ruleVerification(row: Record<string, any>): (string | boolean)[] {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'string':
|
case 'string':
|
||||||
|
// 字符串长度判断
|
||||||
if (filter && filter.indexOf('~') !== -1) {
|
if (filter && filter.indexOf('~') !== -1) {
|
||||||
try {
|
try {
|
||||||
const filterArr = filter.split('~');
|
const filterArr = filter.split('~');
|
||||||
@@ -1021,12 +1021,28 @@ function ruleVerification(row: Record<string, any>): (string | boolean)[] {
|
|||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 字符串http判断
|
||||||
|
if (value.startsWith('http')) {
|
||||||
|
try {
|
||||||
|
if (!validURL(value)) {
|
||||||
|
return [
|
||||||
|
false,
|
||||||
|
t('views.configManage.configParamForm.requireString', {
|
||||||
|
display,
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'regex':
|
case 'regex':
|
||||||
if (filter) {
|
if (filter) {
|
||||||
try {
|
try {
|
||||||
let regex = new RegExp(filter);
|
let regex = new RegExp(filter);
|
||||||
|
console.log(regex, regex.test(value));
|
||||||
if (!regex.test(value)) {
|
if (!regex.test(value)) {
|
||||||
return [
|
return [
|
||||||
false,
|
false,
|
||||||
|
|||||||
Reference in New Issue
Block a user