Skip to content

路径拼接 ​

本节目标:理解“路径拼接”的核心思路,并能把它用于实际开发或面试表达。 在uniapp中如何优雅地处理路径字符串的拼接,比如去掉重复的/或加上缺失的/

在处理字符串路径的时候,你可以使用一些JavaScript的内置方法和正则表达式帮助你处理。 下面是一个简单的方法来去除路径中重复的 /: function normalizePath(path) { return path.replace(//+/g, '/'); } 这个函数使用了一个正则表达式 //+/g 来匹配路径中的一个或多个连续的 /,然后将它们全部替换为一个 /。 要确保路径以 / 开头但不以 / 结尾,你可以使用以下的函数: function ensureLeadingAndRemoveTrailingSlash(path) { if (!path.startsWith('/')) { path = '/' + path; } if (path.endsWith('/')) { path = path.slice(0, -1); } return path; }

这个函数首先检查路径是否以 / 开头,如果不是,就在路径的开头添加一个 /。然后它检查路径是否以 / 结尾,如果是,就去除这个 /。 然后你可以将这两个函数组合起来使用,以便在一个步骤中进行路径的规范化: function normalizeAndEnsurePath(path) { return ensureLeadingAndRemoveTrailingSlash(normalizePath(path)); } 这个函数首先去除路径中的重复的 /,然后确保路径以 / 开头但不以 / 结尾。这应该能满足你在处理路径时的需要。 请注意,这些函数都假设你正在处理的是Unix风格的路径(也就是说,路径的分隔符是 /)。如果你正在处理的是Windows风格的路径(也就是说,路径的分隔符是 \),那么你需要做一些小的调整。

有没有内置的方法呢 对于你的问题,没有直接的内置方法来处理路径字符串的拼接,特别是对于移除重复的 / 或者添加缺失的 /。一般来说,我们需要自己写一些辅助函数来处理这些情况,就像我之前给出的示例那样。 然而,如果你在Node.js环境下,你可以使用 path 模块提供的方法。例如 path.join() 和 path.normalize() 方法。这些方法可以处理多余的 /,并且可以根据系统环境来处理路径。 例如: jconst path = require('path'); let p = path.join('/foo/', '/bar/', 'baz/'); console.log(p); // 输出: '/foo/bar/baz' let p2 = path.normalize('/foo//bar/baz//'); console.log(p2); // 输出: '/foo/bar/baz' 请注意,这些方法是在Node.js环境下可以使用的,而不能在浏览器环境下使用。所以,如果你是在Uni-app或者其他前端环境下工作,你可能还是需要自己编写辅助函数来处理这些路径问题。 当然,你可以在Uni-app项目中引用第三方库,比如 url-join,它能帮助你解决路径拼接的问题。 var urljoin = require('url-join'); var fullUrl = urljoin('http://example.com', 'a', '/b/cd', '?foo=123'); console.log(fullUrl); // 输出:'http://example.com/a/b/cd?foo=123' 这样可以避免自己处理各种复杂的边缘情况。

本站总访问 — 次