diff --git a/ruoyi-ui/src/utils/validate.js b/ruoyi-ui/src/utils/validate.js index 13b7a15c5..fddf7acd3 100644 --- a/ruoyi-ui/src/utils/validate.js +++ b/ruoyi-ui/src/utils/validate.js @@ -5,7 +5,12 @@ * @returns {Boolean} */ export function isPathMatch(pattern, path) { - const regexPattern = pattern.replace(/\//g, '\\/').replace(/\*\*/g, '.*').replace(/\*/g, '[^\\/]*') + const regexPattern = pattern + .replace(/([.+^${}()|\[\]\\])/g, '\\$1') + .replace(/\*\*/g, '__DOUBLE_STAR__') + .replace(/\*/g, '[^/]*') + .replace(/__DOUBLE_STAR__/g, '.*') + .replace(/\?/g, '[^/]') const regex = new RegExp(`^${regexPattern}$`) return regex.test(path) }