从文件路径中提取文件名,可选择去除扩展名。
getBasename
函数签名
typescript
function getBasename(path: string, ext?: string): string描述
从文件路径中提取文件名,可选择去除扩展名。
参数
| 参数名 | 类型 | 可选 | 默认值 | 描述 |
|---|---|---|---|---|
path | string | 否 | - | - |
ext | string | 是 | - | - |
返回值
string
示例
typescript
```ts
basename('/path/to/file.txt') // => "file.txt"
basename('/path/to/file.txt', '.txt') // => "file"
::: details 点击查看源码
::: code-group
```js
/**
* 从文件路径中提取文件名,可选择去除扩展名。
*
* @param {string} path - 包含文件名的路径。
* @param {string} [ext] - 可选的扩展名,如果提供且文件名以该扩展名结尾,则会从结果中移除。
* @returns {string} 提取出的文件名。
* @example
* \`\`\`ts
* basename('/path/to/file.txt') // => "file.txt"
* basename('/path/to/file.txt', '.txt') // => "file"
* \`\`\`
*/
export function getBasename(path, ext) {
if (!path || typeof path !== "string") return "";
const filename =
path
.replace(/[\/\\]+$/, "")
.split(/[\/\\]/)
.pop() || "";
return ext && filename.endsWith(ext)
? filename.slice(0, -ext.length)
: filename;
}ts
/**
* 从文件路径中提取文件名,可选择去除扩展名。
*
* @param {string} path - 包含文件名的路径。
* @param {string} [ext] - 可选的扩展名,如果提供且文件名以该扩展名结尾,则会从结果中移除。
* @returns {string} 提取出的文件名。
* @example
* \`\`\`ts
* basename('/path/to/file.txt') // => "file.txt"
* basename('/path/to/file.txt', '.txt') // => "file"
* \`\`\`
*/
export function getBasename(path: string, ext?: string): string {
if (!path || typeof path !== "string") return "";
const filename =
path
.replace(/[\/\\]+$/, "")
.split(/[\/\\]/)
.pop() || "";
return ext && filename.endsWith(ext)
? filename.slice(0, -ext.length)
: filename;
}:::
如有错误,请提交issue :::