31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
/**
|
||
* 校验directory是否合法, 合法返回200, 不合法返回500
|
||
*
|
||
* directory 不能以/开头,不能以/结尾。不能以.开头,不能以.结尾。
|
||
* 把directory的/替换掉后,只能包含数字、字母、下划线、中划线
|
||
* @param directory 目录
|
||
* @returns
|
||
*/
|
||
export const validateDirectory = (directory?: string) => {
|
||
// 对directory进行校验,不能以/开头,不能以/结尾。不能以.开头,不能以.结尾。
|
||
if (directory && (directory.startsWith('/') || directory.endsWith('/') || directory.startsWith('..') || directory.endsWith('..'))) {
|
||
return {
|
||
code: 500,
|
||
message: 'directory is invalid',
|
||
};
|
||
}
|
||
// 把directory的/替换掉后,只能包含数字、字母、下划线、中划线
|
||
// 可以包含.
|
||
let _directory = directory?.replace(/\//g, '');
|
||
if (_directory && !/^[a-zA-Z0-9_.-]+$/.test(_directory)) {
|
||
return {
|
||
code: 500,
|
||
message: 'directory is invalid, only number, letter, underline and hyphen are allowed',
|
||
};
|
||
}
|
||
return {
|
||
code: 200,
|
||
message: 'directory is valid',
|
||
};
|
||
};
|