/** * 校验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', }; };